Hallo Marc,
hab eigentlich ne relativ einfache Frage muss ich wenn ich daten aus meinem Gästebuch so(codeschnipsel):
mysql_query("INSERT INTO entries(name,...) VALUES('".htmlentities($_POST['a432z'])....
in meine Datenbank schreibe noch mysql_real_escape_string anwenden??
Ja.
Eigentlich macht doch htmlentities schon das Ausreichende??
Nein. htmlentities hat mit den Risiken beim Abspeichern nichts, überhaupt nichts zu tun. Wahrscheinlich hilft Dir die derzeitige Einstellung der Magic Quotes.
Es ist meiner Meinung nach keine gute Idee, in der Datenbank etwas anderes abzuspeichern, als das, was eingegeben wurde. Es ist meiner Meinung nach viel sinnvoller, genau die Rohdaten abzuspeichern, wie im folgenden Tipp aus dem anderen Forum beschrieben. Wende htmlentities() dann und nur dann an, wenn Du die Daten in einem HTML-Kontext ausgibst.
Ich frag nur weil ich in einem anderen Forum gelesen habe:
Unbedingt auf ALLES was vom USER in den QUERY kommt das hier anwenden:
> if(get_magic_quotes_gpc() == 1)
> {
> $_POST['input'] = stripslashes($_POST['input']);
> }
> $_POST['input'] = mysql_real_escape_string($_POST['input']);
Diesen Rat solltest Du unbedingt befolgen. Es ist ein guter Rat. Er ist sinnvoll. Du kannst Dich nicht darauf verlassen, dass magic_quotes_gpc aktiviert sind, in zukünftigen Versionen ist aus gutem Grund geplant, diesen M**t aus PHP zu entfernen.
Freundliche Grüße
Vinzenz