Autor Zpráva
mila
Profil *
Mohli by jste se kouknou na hadanky.chytrak.cz/pokus.php?
Zkouším vytvořit takovou malou dikuzi a mám problém, že když napíšu do příspěvku uvozovky, tak se mi před nima objeví zpětné lomítko. Platí to ale jen pro poslední příspěvek.
Nevíte čím by to mohlo být? (a jak to řešit?)

Takto vypadá kód:

$result = mysql_query("select * from pokus");
$jeden = mysql_fetch_array ($result);

if ($_POST[prispevek]) {
$odkoho=$_POST[odkoho];
$prispevek=$_POST[prispevek];
$odkoho=htmlspecialchars ($odkoho, ENT_QUOTES);
$prispevek=htmlspecialchars ($prispevek, ENT_QUOTES);
$odkoho=str_replace("\n", "", $odkoho);
$prispevek=str_replace("\n", "<br>", $prispevek);
$jeden['diskuze']='<p class="odkoho">Poslal:'.$odkoho.'</p><p class="prispevek">'.$prispevek.'</p>'.$jeden['diskuze'];
mysql_query("update pokus set diskuze = '".$jeden['diskuze']."'");

}
print_r($jeden['diskuze']);

Je to jen pracovní verze, tak na ostatní nehleďte..
Díky
mila
Oswald
Profil
V php.ini je zřejmě zaplá direktiva magic_quotes_gpc, což způsobuje, že jsou všechny uvozovky (a taky apostrofy a zpětná lomítka) v hodnoyách získaných přes POST nebo GET escapovány. Je to kvůli databázím, kde to tak být musí. Pokud data nechceš uložit do DB , tak použij funkci stripslashes().

Nedávno o tom vyšel článek na Root.cz - http://www.root.cz/clanky/php-escapovani/


Update - pouze u posledních je to proto, že je vy pisuješ přímo - ne z databáze, pokud je tam necheš:



echo stripslashes($jeden['diskuze']);
mila
Profil *
Díky, už to funguje jak má. Do databáze to ukládám, ale převedu vše ošklivý na entity.
Toto téma je uzamčeno. Odpověď nelze zaslat.