Mailinglisten-Archive |
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