dedlfix: OOP: Behandlung von Benutzereingaben für Konstruktor

Beitrag lesen

Tach!

Also ich habe meine Datei mit HTML-Code (Struktur). Darin binde ich eine/mehrere externe CSS-Datei ein (Design). Jetzt kommt noch eine/mehrere PHP-Dateien mit Funktionen (Code) hinzu.

Ich würde jetzt hier sagen, dass htmlspecialchars() eine Funktion ist, die eigentlich in meiner Strukturdatei nichts zu suchen hat. Klar mir leuchtet ein, welche Vorteile es bringt, wenn man in der HTML-Datei erkennt, dass die Variable escaped wurde,

Es kommt drauf an, wie du deine Ausgabe erstellst. Setzt du auf ein Template-System, dessen Syntax ohne PHP-Code auskommt, dann muss der hinter dem Template-System steckende Code für die Maskierung sorgen. Setzt du auf PHP als Template-System, dann musst du das erledigen.

ABER was ist, wenn der Benutzername max. 20 Zeichen lang sein soll, keine Sonderzeichen enthalten darf, nicht schon vergeben sein darf ... usw. ...!

Das ist Validierung der Eingabedaten und Teil der Verarbeitung, kommt also deutlich vor der Ausgabe und hat im Template-System nichts mehr zu suchen. Etwas anderes ist, wenn du die Ausgabe kürzen musst, weil du zum Beispiel nur den Anfang des Textes darstellen willst. Das könnte über eine Helferfunktion Teil der Ausgabe sein.

Da sollte ich mich doch in meiner Strukturdatei auch darauf verlassen, das meine Funktionen in der Codedatei dies ordnungsgemäß prüft und muss dies deshalb nicht in der Strukturdatei validieren.(?)

Unterscheide lieber in die drei groben Phasen Eingabe, Verarbeitung und Ausgabe. Die Eingabephase ist oft recht kurz oder nicht vorhanden, weil PHP schon fast alles (z.B. $_GET/$_POST) gebrauchsfertig bereitstellt. Dann kommt die Verarbeitung, wozu auch die Validierung gemäß deiner Geschäftslogik vor dem Speichern zählt. Und die Ausgabe bringt dann alle während der Verarbeitungsphase entstandenen Daten in die Templates (egal ob extra Template-System oder PHP).

dedlfix.