if(isset($_POST["name"]) && !empty($_POST["name"])) {
$name = htmlspecialchars($_POST["name"]);htmlspecialchars() hier?
IMHO nicht. Wenn das mal erweitert werden soll, dass Nutzer in einer DB abgelegt werden, landen dort unsinnige Daten.
Das hatte ich in meinem Ursprungspost ja auch schon beschrieben.
Aber wie behandel ich vom Benutzer eingegebene Daten vor der Überprüfung? Also abgesehen von der kontextabhängigen Überprüfung von Sinn/Länge oder Ähnliches sind generell bestimmte Zeichen zu escapen bzw. bestimmte Zeichenkettenfunktionen anzuwenden, um Sicherheitslücken zu schließen? Analog zu htmlspecialchars() für die HTML-Ausgabe oder mysql_real_escape_string() für eine mysql-Abfrage?
Das Escapen von HTML-Sonderzeichen muss genau dann erfolgen, wenn Daten in den HTML-Kontext gebracht werden:
Das werde ich umstellen. Wobei: Was hälst du von einem speziellen Getter? Also sowas wie zeigeHTMLName() oder so? Dann hätte ich Funktionen und Ausgabe etwas getrennter? Ich meine ich will (zumindest noch nicht) ein Templatesystem bauen und für das Beispiel vlt. etwas zu viel (da nur eine PHP-Funktion angewendet wird), aber vlt. ist es ja irgendwann mal erforderlich für die HTML-Ausgabe eine andere Funktion zu verwenden oder neben der Behandlung mit htmlspecialchars() soll noch etwas anderes gemacht werden (bspw. erster Buchstabe groß oder bestimmte Namen zensieren oder Ähnliches)? Da wäre es doch toll, wenn ich das nur in zeigeHTMLName() ändern muss und nicht jedes mal, wo ich htmlspecialchars($name) ausgebe.
Freundliche Grüße
Kackfohgel