phpbar.de logo

Mailinglisten-Archive

[php] Validierung von Eingabefeldern ...

[php] Validierung von Eingabefeldern ...

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Mit Jun 28 09:42:18 CEST 2006


Hallo Stefan,

Am Mittwoch, 28. Juni 2006 02:36 schrieb Stefan Weber:
> wie kann ich Eingabefelder unter PHP sauber validieren?

[...]

> 2. wenn nicht OK, dann auf das betreffende Feld zurückspringen.
>
> Hab das in der Vergangenheit immer mit JavaScript gemacht, da geht
> das ganz easy. Möchte das Formular aber gerne komplett auf PHP
> umstellen und möchte vermeiden (wie ich es ohne nachzudenken tun
> würde) ggf. in die erste Zeile den Fehler zu benennen und vom User
> erwarten, dass er das Feld von sich aus anklickt und korrigiert.
>
> Wenn es dafür ne gute Lösung (Lösungskonzept) gibt, wäre ich für
> einen Hinweis sehr dankbar.

Hannes hat ja bereits zwei Lösungsansätze genannt. Beim Einsatz von 
Javascript bzw. AJAX brauchst Du allerdings auf jeden Fall eine voll 
ausgebaute, serverseitige Alternativlösung mit PHP.

Du prüfst im PHP-Skript serverseitig schlicht und einfach, genau wie mit 
Javascript clientseitig, die Felder und merkst Dir in einem 
Fehler-Array, wenn ein Feld die Validierung nicht erfolgreich bestanden 
hat. Du kannst hier auch einen internen Fehlercode verwenden, mit 
dessen Hilfe Du dann dem Benutzer den Fehler bei der Wiedervorlage des 
Formulars auch genauer spezifizieren kannst.

Wenn Du das HTML-Formular mit PHP dann zur Korrektur ausgibst, weist Du 
allen Felder, wo ein Fehler aufgetreten ist, einfach eine andere 
CSS-Klasse zu und sorgst so für die Hervorhebung der fehlerhaften 
Felder. Die Fehlermeldungen kannst Du entweder zu Beginn des Formulars 
in einem auflisten oder eben jeweils beim Feld notieren.

Funktioniert also logisch exakt so, wie mit Javascript bzw. AJAX, nur 
eben auf einem anderen technischen Weg.

Wenn Du eine richtig tolle Lösung willst, die dem Anwender vom Komfort 
her abgestuft die bestmögliche Lösung bietet, dann machst Du folgendes:

1. Formular-Prüfung mit AJAX, sofern Javascript im Browser aktiviert ist 
und AJAX genutzt werden kann (HttpRequest-Objekt abfragen)

2. Formular-Prüfung mit Javascript, sofern Javascript im Browser 
aktiviert ist (erste clientseitige Prüfung, wenn AJAX nicht genutzt 
werden kann; zweite clientseitige Prüfung, wenn AJAX genutzt werden 
kann, wird in diesem Fall aber erfolgreich passiert, außer die  
AJAX-Prüfung war fehlerhaft)

3. Formular-Prüfung mit PHP (greift, wenn Javascript im Browser nicht 
aktiviert ist; ist Javascript im Browser aktiviert, wird diese Prüfung 
erfolgreich passiert, außer die AJAX- und/oder Javascript-Prüfung 
war(en) fehlerhaft)


Viele Grüße

Lutz

php::bar PHP Wiki   -   Listenarchive