Autor Zpráva
Petroff
Profil
Znovuzobrazení formuláře při opravě/dokončení vyplnění vynechaných položek:
<textarea rows="5" id="text" name="text" cols="25" value="<?echo $text?>"></textarea>
Jsou-li v TA pouze alfanum.znaky je vše OK. Ale pro některé znaky bude třeba nějaká konverze:
<textarea rows="5" id="text" name="text" cols="25" value="<?echo konvert($text)?>"></textarea>
Nevíte jaká, popř. kterých všech znaků se týká?
nightfish
Profil
<textarea rows="5" id="text" name="text" cols="25"><?php echo $text;?></textarea>
Petroff
Profil
To je totéž jako můj případ s value:
pokud např. do textarey napíšu "AHOJ", po opakovaném načtení FORMu se v TA objeví: \"AHOJ\"
Jan Tvrdík
Profil
http://cz.php.net/stripslashes ?
Petroff
Profil
Díky to bude asi ono.
Petroff
Profil
Ve formuláři je teď už $text v pořádku, ale po uložení do mysql se to zkazí:
Příklad:
___TEXTAREA_______DB___
1. aaaaa\\\bbbb      aaaaa\®bbb.  [znak ® je ve skutečnosti zobrazený čtvereček...asi nějaký řídící znak]
2. \\\a"a"a\"a'''a\'    [vůbec se neuloží]

Nevím co s tím ???
=============================================
Už to mám, pochopitelně do DB se musí ukládat řetězec $text bez konverze funkcí odstraňující BSlashes:
Asi takto:
<?php
$ZOBRAZFORM=true;
if (!empty($_POST)) //____odesláno => musíme kontolovat
{
$ermeno = ($meno)?"":" Vyplnit !";
$ertext = ($text)?"":" Vyplnit !";
if (!($ermeno.$ertext)) //____kontrola dopadla OK
{
$ZOBRAZFORM=false;
require "../conn.php";
$text = htmlspecialchars($text);
$text= str_replace(array("\r\n","\n"),"<br />",$text);
//____víceřádkový vstup
mysql_query("INSERT INTO komentare VALUES ('', '$meno', '$text',......)");
header("Location: pridane.php"); //____REPORT
}
}
}
if ($ZOBRAZFORM):?>
<!DOCTYPE .......
<form .........
<textarea ... name="text"><?echo stripslashes ($text)?></textarea><span><?=$ertext?></span></div>
....../html>
<?endif;?>
krteczek
Profil
koukni se na http://texyla.jaknato.com
1. budeš mít šikovný editor zpracovávající Texy syntaxi
2. nemusíš řešit filtrování, Texy se o to postará (nežádoucí tagy, podstrčený javascript,...),
3. součástí je funkce removeMagicQuotesGpc() [autorem je p. Vrána: http://php.vrana.cz], která odstranuje ošetření způsobené Magic_Quotes_gpc directivou nastavenou v php.ini. Funkce se volá před prvním zpracováním jakékoliv proměnné. ($_POST, $_GET, $_SESSION, $_REQUEST...), nejlépe na začátku scriptu.
4. potom už stripslashes nemusíš používat
5. vše co jde do databáze ošetři fcí mysql_real_escape_string()
podrobnosti zde: http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=9&topic=53 453
Petroff
Profil
<to krteczek>
Díky mrknu se na to.
Nicméně stávající ošetření přenosu [textarea => DB => HTML] je už naprosto v pořádku, tj. co napíšu, to se naprosto shodně vypíše v HTML. ( Nic víc od toho nežádám.)
Navíc většině uživatelů (používající JS) se tato php stránka s formulářem vůbec neotevírá (ošetření dyn.gen.CSS formu javascriptem).

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0