Autor Zpráva
xxxadam577
Profil
Ahoj, chci zapsat do databáze název, ve kterém je apostrof, bohužel toto mi nefunguje. Nic mě nenapadá...
 $mysqli->query("INSERT INTO list values(0,'".$1."','".2."','".$3."','".$4."','".$5."','".$6."','".$7."','".$8."')");  

Chci zapsat třeba Thomas's ...
Díky
xaverista
Profil
Ahoj,

Je to proto, že neescapuješ

$jmeno = $mysqli->real_escape_string($_POST['jmeno']);

Escapovaní je i ochrana proti SQL injection

Xave
juriad
Profil
Použij php.net/manual/en/mysqli.real-escape-string.php. Když skládáš SQL dotaz musíš vždy escapovat všechny řetězce, které do něj vkládáš. Je třeba zajistit, že číslo, které vkládáš je skutečně číslo, datum je skutečně datum atp.

Není to jen ochrana proti útokům a nepřejícím uživatelům, ale je to i ochrana proti tvé vlastní blbosti.
xxxadam577
Profil
Děkuju :)

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