PHP 5.4 & MySQL 5.6 Grundkurs

Formularvalidierung

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Wenn Sie eine Abfrage durchführen und das Programm dabei dem Benutzer eine Fehlermeldung ausgibt, ist es wichtig, dass die bisher eingegebenen Daten wieder im Formular erscheinen. Wie's geht, zeigt dieses Video.

Transkript

Sie kennen das vom surfen im Internet. Bei Formularen wird oft überprüft, ob alle obligatorischen Felder ausgefüllt sind, und sonst dem Benutzer eine Fehlermeldung präsentiert. Das lässt sich auch gut mit PHP realisieren. Schauen wir uns erst einmal die Grundfunktionalität an. Ich habe hier ein kleines Formular mit zwei Feldern, die obligatorisch sind und einem Feld, was nicht ausgefüllt werden muss. Wenn ich hier zum Beispiel jetzt den Nachnamen eintrage, den Vornamen trage ich auch ein und auf Daten absenden gehe, dann kriege ich die Meldung hier angezeigt, dass ich doch bitte auch noch ein Thema wählen möchte. Wichtig ist aber auch, der Nachname und der Vorname, die ich vor eingetragen habe, bleiben erhalten. Sie sind also wieder in den Formularfeldern drinnen. Jetzt zeige ich nochmal hier ein anderes Beispiel. Ich wähle jetzt das Thema, aber lasse den Nachnamen weg und gehe auf Daten absenden. Und kriege wieder die entsprechende Fehlermeldung, aber auch wichtig das Thema, was ich vorher gewählt habe ist weiter hier ausgewählt. Wenn ich alles dann eintrage, dann würde hier eine Meldung kommen, Vielen Dank für Ihre Eingaben. Und im Normalfall würde etwas geschehen, dass Ganze würde in eine Datenbank geschrieben oder per Mail versendet. Jetzt müssen wir uns das Ganze mal anschauen, wie das mit PHP funktioniert. Wichtig immer wie gesagt der Punkt, dass das, was vorher ausgewählt ist, auch wieder eingetragen wird bei einem Fehler. Schauen wir uns mal das Skript an. Also, hier ist die Hauptlogik des Skriptes. Das sind genau 1,2,3,4,5 Zeilen. Es wird überprüft, ob eine Variable $_POST gesendet, gesetzt ist. Wenn das der Fall ist, dann weiss ich das Formular wurde abgesendet und es wird eine Funktion aufgerufen, die heißt formverarbeiten. Das ist keine PHP Funktion, sondern eine die ich selbst geschrieben habe. Wenn das Formular nicht abgesendet wurde, dann ist dieser if-Zweig nicht wahr. Dann kommen wir zum else hier und was soll dann geschehen? Dann soll das Formular ausgegeben werden. Das hier ist auch eine Funktion, die ich selbst geschrieben habe und keine die mir PHP zur Verfügung stellt. Außerdem sehen Sie hier noch im Beispiel, dass es ein Array gibt, mit den möglichen Themen. Das brauche ich dann für die Auswahlliste. Beginnen wir jetzt mit der ersten Funktion, diesem formausgeben. Diese Funktion ist dafür zuständig, dass Formular auszugeben. Sie erwartet vier Parameter, die im Normalfall hier auf nichts gesetzt werden als default, also auf einen leeren String. In der Formularausgabe muss ich auf dieses themen array zugreifen. da das aber nicht innerhalb der Funktion steht, sondern außerhalb, kann ich das machen über global. Wenn ich das global weglasse einfach so, würde der Zugriff auf dieses Array nicht funktionieren. Dann wird erst einmal überprüft, ob in der Variable $fehler etwas drinnen steht. Wenn das der Fall ist, dann werden die Fehler hier ausgegeben. Darauf kommen wie nachher noch zu sprechen. Sie sehen ansonsten, dass hier das Formular erzeugt wird. Hier wird das Formular erzeugt. Und was noch wichtig ist, ist dass hier bei den einzelnen Feldern bei value immer der Wert eingetragen wird, hier beispielsweise von $vorname, mit htmlspecialchars behandelt. Oder hier von $nachname. Außerdem wird dieses $themen Array erstellt. Wir müssen auf paar Details dieser Formularausgabe gleich noch zu sprechen kommen. Die andere Funktion, die hier verwendet wird, ist die Formularverarbeitung, heißt hier formverarbeitung. Die führt einfach Überprüfung durch. Dieses global $themen sorgt dafür, dass ich auf dieses $themen Array zugreifen kann. Dann kommen einfache Überprüfungen. Es wird immer überprüft, ob das jeweilige Formularfeld gesetzt ist und ein String ist. Wenn das der Fall ist, dann wird dieser String von Leerzeichen bereinigt, das macht dieses trim und in der kurzen Variable $nachname gespeichert. Sonst wird diese kurze Variable auf den Leerstring gesetzt. Und genauso auch mit unserem zweiten Formularfeld und unserem dritten Formularfeld. Außerdem wird die Variable $fehler erst einmal auf den Leerstring gesetzt. Dann wird überprüft, hat jemand etwas in das Feld $nachname reingeschrieben. Das geht an dieser Stelle. Wenn das Feld leer ist, dafür nehme ich zur Überprüfung die Funktion empty. Dann befülle ich meine Variable $fehler mit einer Fehlermeldung, nämlich hier mit dem Text "Bitte geben Sie Ihren Nachnamen an". Außerdem überprüfe ich jetzt, ob die Auswahlliste richtig gesetzt ist. Erstmal muss ich dafür natürlich auch wissen, ob der gewählte Wert in meinem Array drinnen steht. Und das überprüfe ich hier. Und wenn das nicht der Fall ist oder kein Thema gewählt ist, dann ergänze ich meine Fehlermeldung, um den Text "Bitte wählen Sie ein Thema". Dieser Punkt hier ist wichtig. Also, die Angabe von Punkt =. Ich möchte an eine möglicherweise bestehende Fehlermeldung hier etwas anhängen und das mache ich über den Punkt. $fehler.= etwas, ist das Selbe wie, wenn ich schreiben würde, $fehler = fehler. etwas. Das heißt, dieses .= ist eine Verkürzung, um etwas anzuhängen. Damit erstelle ich meine Fehlermeldung. Dann kann ich überprüfen, ist diese Fehlermeldung größer als null. Das heißt, dass dann Fehler aufgetreten sind, und dann mache ich folgendes. Ich lasse noch einmal das Formular ausgeben, übergebe aber die bisher jetzt schon gespeicherten Variablen. Wenn hingegen nichts in der Fehlermeldung drinnen steht, dann hat der Benutzer auch alles ausgefüllt, was er machen sollte, und ich lasse nur den Text ausgeben, Vielen Dank für Ihre Eingaben. Hier könnte man natürlich auch die Mail versenden. Gehen wir einmal von dem Fall aus, dass es ein Fehler gab. Dann wird hier die Funktion formausgeben aufgerufen, und Sie sehen, ich habe hier die vier Parameter, und in $vorname beispielsweise steht ja jetzt auch das drinnen, was ein $vorname vorher eingegeben wurde. Und das wird dann in der Funktion formausgeben hier auch wieder reingeschrieben. Also dieser Schritt ist wichtig, damit Sie nicht einfach eine Fehlermeldung ausgeben, dass Formular wieder ganz leer ist. Außerdem falls es natürlich eben einen Fehler gegeben hat, dann wird der hier ausgegeben. Sie sehen hier innerhalb eines Absatzes, der Absatz hat noch eine CSS Klasse, die ich hier oben definiert habe, einfach mal in roter Farbe und fett gemacht. Das heißt, meine Funktion formausgeben wird in zwei Fällen aufgerufen. Ganz am Anfang, wenn das Formular noch nicht abgesendet wurde, dann erhalten all diese Parameter ihren default Wert, nämlich ein Leerstring. Die Funktion formausgeben wird aber ebenfalls aufgerufen, falls das Formular schon abgesendet wurde, aber bestimmte Werte gefehlt haben. Und dann wird hier über diese Stellen immer dafür gesorgt, dass die uhrsprünglich eingetragenen Werte wieder reingeschrieben werden. Bei einer Formularüberprüfung denken viele Leute eher erst an JavaScript. Man kann sowas natürlich auch mit JavaScript machen. Der Vorteil ist, dass der Benutzer ein direktes feedback erhält, ohne dass das Ganze über den Server läuft. Der Nachteil an JavaScript ist, dass es im Browser auch deaktiviert werden kann. Deswegen empfehlt es sich eigentlich beides zu machen. Sie können die Überprüfung mit JavaScript machen, weil es ein direktes feedback für den Benutzer ist. Und Sie sollten zusätzlich auf jeden Fall die Überprüfung mit PHP machen, weil nur die wirklich zuverlässig ist. Hier sehen Sie, dass ich natürlich das Ganze auch um eine Überprüfung per JavaScript erweitern liese. Ich kann problemlos in meine HTML Seite mit dem PHP Code hier beispielsweise auch JavaScript reinschreiben. Das ist kein Problem. Wichtig bei der Formularprüfung ist, dass Sie die bereits eingetragenen Werte wieder in die Formularfelder schreiben, auch wenn das, wie Sie gerade gesehen haben, mit einem gewissen Aufwand verbunden ist. Am besten definieren Sie hier Funktionen zur Formularverarbeitung und zur Formularausgabe, so wie wir es hier auch gemacht haben.

PHP 5.4 & MySQL 5.6 Grundkurs

Steigen Sie auch ohne Vorwissen in die Programmierung PHP- & MySQL-basierter Webseiten ein und lernen Sie die Sprachgrundlagen wie Bedingungen, Schleifen, Funktionen usw. kennen.

7 Std. 9 min (86 Videos)
Derzeit sind keine Feedbacks vorhanden...

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!