Johannes Zeller: Variable überprüfen

Beitrag lesen

Hallo Mirko,

also wenn ich das jetzt richtig verstehe:
mysql_real_escape_string() beim Speichern der Daten in der Datenbank
und:
htmlspecialchars() beim Auslesen der Datenbank und Einfügen der Werte in die Webseite (HTML).

Reicht das?

Wenn du mit den Daten nichts anderes tust, als sie in in eine MySQL-Datenbank zu schreiben und innerhalb einer HTML-Seite auszugeben. Aber wenn du andere Dinge damit anstellst, musst du auch dort dafür sorgen, dass die Werte richtig maskiert sind. Würdest du sie beispielsweise mit exec() o.ä. als Argument einem Programm übergeben, müsstest du die Funktion escapeshellcmd() verwenden. Für andere Kontexte gibt es wieder eigenen Funktionen.

Und ihr redet immer von Ausgabekontext. Ich will die Daten eigentlich nur aus der Datenbank in eine HTML Seite schreiben.

Das nennt man ausgeben.

Was gibts denn da sonst noch? Kann ich htmlspecialchars() dann nicht gleich beim Reinschreiben verwenden?

Nein, man sollte Daten immer nur dann escapen, wo man es auch braucht. Wenn du z.B. irgendwann die gleichen Daten nicht in eine HTML-Seite sondern eine Text-Datei schreiben wölltest, müsstest du die HTML-Maskierungen erst wieder rückgängig machen.

Schöne Grüße,

Johannes