Beispiel für eine einfache Validierung

Die auf dieser Seite vorgestellte Formularvalidierung ist mit Absicht recht einfach gehalten, um den PHP-Novizen ein leicht nachvollziehbares Praxisbeispiel zu liefern.

Das angezeigte Formular besteht aus…

a) einem Textfeld namens “description”

b) 3 Auswahllisten namens “day”, “month” und “year”, deren Werte als Ganzzahlen definiert sind (“31” “12” “1961”)

Aufgabenstellung

1. Einrichtung von PHP-basierten Validierungsregeln, die prüfen, ob der Besucher das Textfeld “description” ausgefüllt hat und ob die ausgewählten Datumswerte ein gültiges Datum ergeben.

2. Plazierung der entsprechenden Fehlermeldungen innerhalb des Formulars entsprechend dem folgenden Beispiel

3. Falls die Validierung fehlerhafte oder fehlende Angaben erkennt, sollen die vom Besucher eingetragenen bzw. ausgewählten Formulardaten beibehalten werden.


Screenshot des Formulars inkl. der Fehlermeldungen

die Validierungsregeln einrichten


die PHP-Validierungsregeln

Anmerkungen:

a) die PHP-Funktion empty ist in diesem Zusammenhang keine 100%ig verlässliche Hilfe, weil ein Seitenbesucher anstelle eines erwarteten “string” auch eine oder mehrere Leerzeichen eintragen könnte, was von dieser Funktion nicht erkannt werden kann. Die einzig realistische Abhilfe wäre die Verwendung eines “regulärer Ausdrucks” (regular expression) — dazu mehr auf einer Folgeseite.

b) die PHP-Funktion checkdate prüft ein Gregorianisches Datum auf Gültigkeit.

die Fehlermeldungen plazieren

Beispiel 1: die Fehlermeldung für das Textfeld

die Fehlermeldung für das Textfeld
Beispiel 2: die Fehlermeldung für die Datum-Auswalhllisten

die Fehlermeldung für die Datum-Auswahllisten

Aufmerksamen Lesern wird auffallen, dass beide Fehlermeldungen in eine PHP “if” – Bedingung eingeschlossen werden, in welcher überprüft wird, ob beim Aufruf der Seite die POST – Variable gesetzt ist, was logischerweise erst nach Absenden der Formularwerte der Fall sein wird und nicht beim erstmaligen Seitenaufruf:


Code: überprüfen, ob die POST - Variable gesetzt ist

Diese empfehlenswerte Vorsichtmaßnahme wird verhindern, dass man beim erstmaligen Aufruf der Seite unter Umständen sogenannte E_NOTICE – Warnungen zu sehen bekommt, welche darauf hinweisen werden, dass die jeweilig referenzierte errors['fehlerbezeichung'] – Variable aktuell nicht gesetzt (sprich: unbekannt) ist.

Beibehaltung der Formulardaten

Klare Sache :: als Entwickler hat man sicherzustellen, dass der Seitenbesucher nicht sämtliche Formularfelder erneut ausfüllen oder die gewünschten Werte der Dropdown-Menüs erneut auswählen muss, nur weil z.B. ein einzelnes Feld die Validierung nicht bestanden hat — anders gesagt :: das Formular soll sich nach einem durch die “zu sich selbst posten” – Aktion ausgelösten Neuaufruf der Seite eine zuvor eingetragene Angabe “merken” und als Vorgabewert im entsprechenden Textfeld anzeigen können.

Und dies geht wie folgt:

das Textfeld

das 'value' - Attribut eines Textfeldes

Bei einem HTML-Textfeld wird das “value” – Attribut mit dem Wert der gleichnamigen POST-Variable belegt

ein Menüeintrag

das 'selected' - Attribut einer Menüoption

Ein Menüeintrag wird als vorselektiert gekennzeichnet, wenn sein Wert (01) dem Wert der gleichnamigen POST – Variable entspricht.