Autor Zpráva
hudlan
Profil *
Potřebuju před vložením do databáze změnit textové smajlíky v obrázkové na to používám tohle:
$zprava = "nejakazprava :D :D";
$smiles = array(":)",":D",":P",":O",":-)",":-D");
$pictures = array("<img src='smile1.png'>","<img src='images/smille.jpg'>","<img src='smile3.png'>","<img src='smile4.png'>","<img src='images/smille.jpg'>","<img src='smile2.png'>");
echo $zprava3 = str_replace($smiles, $pictures, $zprava);
Pokud to tady vypíšu smajlík se zobrazí jak má, ale jakmile to zapíšu do databáze:
 $sql = "INSERT INTO chat (jmeno, zprava, cas, pro) VALUES('".$jmeno."', '".$zprava3."', '".$cas."', '".$_POST['pro']."')";
 mysql_query($sql);
Tak pokud je ve zprávě některý ze smajlíků zpráva se do db vůbec nezapíše, ale když tam není žádný smajlík zapisuje se správně jak má a já nemám tušení proč?
panther
Profil
hudlan:
kde ten vstup s apostrofy (smajlici) escapujes? I kdyby tam zadne apostofy nebyly, dost si zahravas s bezpecnosti.
hudlan
Profil *
samozřejmě tohle bylo jen k nahlédnutí ve zkutečnosti to mám takhle:
$zprava = $_POST['message'];


$zprava = htmlspecialchars($zprava);
$zprava = addslashes($zprava);

...
jenikkozak
Profil
hudlan:
Problém s apostrofy ti vzniká až poté, co smajlíky nahradíš. Proměnnou $zprava3 musíš prohnat funkcí mysql_real_escape_string. Funkci addslashes nepotřebuješ.
hudlan
Profil *
aha děkuji opět jsem o něco chytřejší
jenikkozak
Profil
hudlan:
opět jsem o něco chytřejší
Skvěle. A abys byl úplně nejchytřejší, doporučuji si k tématu něco přečíst.
Keeehi
Profil
hudlan:
Jinak to nahrazování smajlíků by jsi měl dělat až při výpisu, ne při vkládání.
whoami.cz
Profil *
Keeehi:
Ano přesně tak.. stejně jako htmlspecialchars() by s měla používat až u výstupu.. při vstupu jen mysql_real_escape_string() či obdoba.

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: