Autor | Zpráva | ||
---|---|---|---|
Petroff Profil |
#1 · Zasláno: 16. 3. 2008, 14:43:21
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 |
#2 · Zasláno: 16. 3. 2008, 15:08:59
<textarea rows="5" id="text" name="text" cols="25"><?php echo $text;?></textarea> |
||
Petroff Profil |
#3 · Zasláno: 16. 3. 2008, 15:55:11
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 |
#4 · Zasláno: 16. 3. 2008, 16:04:05
|
||
Petroff Profil |
#5 · Zasláno: 16. 3. 2008, 16:18:41
Díky to bude asi ono.
|
||
Petroff Profil |
#6 · Zasláno: 16. 3. 2008, 18:26:58 · Upravil/a: Petroff
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 |
#7 · Zasláno: 18. 3. 2008, 09:18:29
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 |
#8 · Zasláno: 18. 3. 2008, 11:27:42 · Upravil/a: Petroff
<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). |
||
Časová prodleva: 17 let
|
0