Hallo
"Hallo <b>{$_POST['username']}</b>,...
Aber nun zu htmlspecialchars: Wenn du den Text nicht ausgeben willst, brauchst du ihn nicht zu erstellen. Da er aber da ist, soll er doch wohl auch ausgegeben werden. Zwar nicht gleich, aber im A-Teil (von EVA). Und weil du den Text an dieser Stelle schon zusammenbaust, musst du auch jetzt schon den Kontext beachten, also
"Hallo <b>" . htmlspecialchars($_POST['username']) . "</b>,...
notieren
OK, jetzt, wo ich dein Beispiel sehe, habe ich es glaube ich endlich begriffen. Ich muss das Wort "htmlspecialchars" verwenden und in die runden Klammern den Wert einfügen, den ich damit in Verbindung bringen möchte. "htmlspecialchars ()" hat nichts mit dem Kontextwechsel zu tun, das hab ich nämlich durcheinander gebracht. Bin schon voll Panne!
Doch doch, htmlspecialchars
hat mit dem Kontextwechsel zu tun. Du speicherst einen Text in einer Variable. Man spricht hier auch von einer Zeichenkette oder einem String. Hier wird er konkret von einem Besucher deiner Seite in einem Formular eingetragen und an dein Skript übermittelt, wo er als $_POST['username']
ankommt.
Bis jetzt handelt es sich einfach nur um irgendeinen Text, der auch Zeichen enthalten *kann*, die im Kontext HTML eine schädliche Auswirkung haben. *Ob* der Besucher, egal ob mit Absicht oder aus Versehen, schädliche Zeichen eingibt, kannst du nicht wissen. Deshalb müssen diese Zeichen, so vorhanden, auf Verdacht maskiert und damit unschädlich gemacht werden, wenn man den Text innerhalb eines HTML-Dokuments ausgeben will. Das erledigt die *Funktion* htmlspecialchars
, der du die Variable, in der der Text gespeichert ist, als Parameter übergibst. Als Rückgabewert der Funktion bekommst du den für die Ausgabe in HTML behandelten Text zurück.
Findet die Funktion im Text eines oder mehrere der angesprochenen schädlichen Zeichen, werden sie, den Regeln von HTML entsprechend, maskiert. Sind keine solchen Zeichen im Text vorhanden, bekommst du den Text unverändert zurück.
Tschö, Auge
Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
Terry Pratchett, "Wachen! Wachen!"
Veranstaltungsdatenbank Vdb 0.3