Ik heb een registratieformulier in elkaar gebouwd waar ik alle data die ik ophaal met $_POST escape met behulp van mysql_real_escape_string().
Nu is het zo dat als ik een nieuwe user registreer en daarna de username echo, ik hem netjes ge-escaped zie. Als ik echter in de users tabel in PHPMyAdmin kijk zie ik de data niet meer ge-escaped. Ook bij het echo'en van alles wat in deze tabel zit zie ik geen slashes meer.
Data ophalen en escapen doe ik hiermee:
Bij het uitvoeren van mijn SQL query om de user aan te maken voer ik ook nog een echo uit van deze username. Bij de user '' ' \n \r 123 zie ik dus als output \'\' \' \\n \\r 123. In de database echter zie ik weer gewoon " ' \n \r 123 en ook als ik dit uitvoer zie ik dat:
Weet iemand waarom de backslashes verdwijnen na het inserten van de data? Magic quotes heb ik trouwens uitgeschakeld.
Nu is het zo dat als ik een nieuwe user registreer en daarna de username echo, ik hem netjes ge-escaped zie. Als ik echter in de users tabel in PHPMyAdmin kijk zie ik de data niet meer ge-escaped. Ook bij het echo'en van alles wat in deze tabel zit zie ik geen slashes meer.
Data ophalen en escapen doe ik hiermee:
PHP:
1
| $username = mysql_real_escape_string($_POST['username']); |
Bij het uitvoeren van mijn SQL query om de user aan te maken voer ik ook nog een echo uit van deze username. Bij de user '' ' \n \r 123 zie ik dus als output \'\' \' \\n \\r 123. In de database echter zie ik weer gewoon " ' \n \r 123 en ook als ik dit uitvoer zie ik dat:
PHP:
1
2
3
4
5
6
7
| $username = mysql_query("SELECT username FROM Users"); while ($row = mysql_fetch_assoc($username)) { echo "<div class=\"username\">"; echo $row['username']; echo "</div>"; } |
Weet iemand waarom de backslashes verdwijnen na het inserten van de data? Magic quotes heb ik trouwens uitgeschakeld.