In dem Buch "PHP5 & MySQL5" von Koffler steht, wenn magic_quotes_gpc auf ON und die beiden anderen Modi auf OFF stehen, können "aus Formularen übermittelte Daten ohne Veränderungen in INSERT-Kommandos verwendet werden".
Ok, wenn ich das demnach so befolge:
dann landet bei mir die Zeichen " ' \ so wie sie sind in der DB! Nix mit quotiert und so.
Wenn ichs dann mit mysql_real_escape_string versuche, werden sie normal mit Backslashes versehen. Ok.
Aber eigentlich hab ichs so gelernt, dass Formulareingaben auch _immer_ mit htmlentities vercoded werden müssen. In Verwendung mit mysq_real_escape_string landet dann bei Eingabe von " ' \ in meiner DB: \" \' \\! Warum wird vercodedes " gequotet?
Ich steige da irgendwie net durch, wie ich htmlentities, mysql_real_escape_string und stripslashes in Kombination verwenden sollte.
Ok, wenn ich das demnach so befolge:
PHP:
$var = $_POST['var'];
$sqlin = "INSERT INTO $tb (`ID`, `var` ) VALUES ('', '$var',)";
mysql_query($sqlin);
dann landet bei mir die Zeichen " ' \ so wie sie sind in der DB! Nix mit quotiert und so.
Wenn ichs dann mit mysql_real_escape_string versuche, werden sie normal mit Backslashes versehen. Ok.
Aber eigentlich hab ichs so gelernt, dass Formulareingaben auch _immer_ mit htmlentities vercoded werden müssen. In Verwendung mit mysq_real_escape_string landet dann bei Eingabe von " ' \ in meiner DB: \" \' \\! Warum wird vercodedes " gequotet?
Ich steige da irgendwie net durch, wie ich htmlentities, mysql_real_escape_string und stripslashes in Kombination verwenden sollte.