![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Erfahrener Benutzer
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.800
|
Eingabeüberprüfung eines Formulars
Oftmals möchte man überprüfen, ob alle nötigen Eingaben eines Formulars gemacht wurden, beispielsweise bei einem Gästebuch oder einem Kontaktformular. Dabei ist es natürlich komfortabel, wenn der User nach einer unzureichenden Eingabe, z.B. wenn eine Angabe vergessen wurde, nur diese eine Angabe ergänzen und nicht alle Eingaben nochmals tätigen muss. Um diese Funktionalität zu realisieren nutzen wir Sessions. Erstellen wir aber zunächst einmal ein Beispielformular. Dieses Formular wird an eine PHP-Datei geschickt, die dann die Überprüfung der Eingaben übernimmt. Code:
<form action="ueberpruefung.php" method="post">
<input type="text" name="name">
<input type="text" name="email">
<input type="hidden" name="gesendet" value="1">
<input type="submit" name="abschicken" value="Weg damit">
</form>
Schauen wir uns nun, die Datei "ueberpruefung.php" an. Da wir eine Session brauchen starten wir diese zu Beginn mit session_start(). PHP-Code:
Wurde die Datei direkt per URL aufgerufen, so wird der User zum Formular weitergeleitet. PHP-Code:
Wenden wir uns aber nun der Eingabeüberprüfung zu. Zunächst einmal erstellen wir im Array $_SESSION den Schlüssel 'error' und weisen diesem ein Array zu. Wir haben somit ein mehrdimensionales Array. PHP-Code:
Wir verwenden also eine foreach-Schleife und durchlaufen so das Array. Im Schleifenrumpf werden dann die Überprüfungen durchgeführt. In unserem Fall überprüfen wir zum Einen, ob überhaupt etwas eingegeben wurde und deuten dann noch eine Überprüfung der eMail-Adresse an. PHP-Code:
Ist eine Angabe gemacht worden, so wird diese dem entsprechenden Schlüssel (= Formularfeld) zugewiesen. Nun müssen wir natürlich auch noch überprüfen, ob ein Fehler aufgetreten ist oder nicht. Sind die Angaben nicht vollständig oder nicht korrekt, so wird der User per header() wieder zurück zum Formular geleitet. Ist kein Fehler entdeckt worden wird das Formular so verarbeitet, wie es gewünscht ist. PHP-Code:
Der interessante Teil ist nun natürlich der Fall, wenn Fehler aufgetreten sind. Wir müssen unsere Datei mit dem Formular etwas umbauen, um den gewünschten Komfort zu erreichen. Wir müssen natürlich auch hier eine Session starten, da wir ja auf die Inhalte der Session-Variablen zugreifen wollen. PHP-Code:
Das erfordert eine kleine Variablendefinition: PHP-Code:
Wir erstellen ein Array, welches die anzuzeigenden Fehler enthält. Wir füllen es, indem wir mittels einer foreach-Schleife durch das Array $_SESSION['error'] laufen und die Schlüssel der zweiten Dimension dem zweidimensionalen Array "$_error" hinzufügen. PHP-Code:
Wir geben also nun das Formular aus. Dabei halten wir die Werte des Attributs "value", sowie die farbliche Markierung bei einem Fehler variabel. PHP-Code:
Dieses Beispiel ist selbstverständlich noch stark erweiterbar. Vor allem im Bereich der eigentlichen Überprüfung sollte man sich etwas Zeit lassen und durch "Spielen" herausfinden, wie man die eigenen Überprüfungen. optimal realisieren kann. Die verwendeten Funktionen findet man natürlich wie immer im offiziellen Manual. Viel Spaß beim Basteln Solltet Ihr Fragen zu dem Tutorial haben, so schreibt bitte einen Beitrag im PHP-Forum mit einem Verweis auf dieses Tutorial. Danke. Ich hoffe, dass ich Euch hier etwas weiterhelfen konnte. Grüße Ben. Geändert von Jann Hendrik (27.06.2007 um 10:58 Uhr). Grund: intern-tag-Fehler manuell angepasst |
|
|
|
|
|
Nach oben #4 |
|
Erfahrener Benutzer
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.800
|
Hi,
der PHP-Highlighter frisst da irgendwas. Zitiert einfach mal meinen Code, dann seht ihr, dass ich die Anführungszeichen eingebaut habe. Ich werde mal schauen, ob man diesen kleinen Bug irgendwie fixen kann. Grüße Ben. |
|
|
|
|
|
Nach oben #5 |
|
Erfahrener Benutzer
Registriert seit: 04.09.2005
Ort: Nürnberg
Beiträge: 561
|
PHP-Code:
|
|
|
|
|
|
Nach oben #7 |
|
Erfahrener Benutzer
Registriert seit: 18.08.2005
Ort: Dortmund
Beiträge: 166
|
Wenn man von dem Beispiel-Formular ausgeht, ist das hier falsch:
PHP-Code:
PHP-Code:
|
|
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Frage zum Tut: [PHP] Fremde Webseiten auslesen | the_cRu | PHP-Programmierung | 27 | 10.02.2007 19:59 |
| [PHP] 404-Fehlerseiten als Chance | PaterNoster | Tutorials | 0 | 23.04.2006 15:04 |
| [PHP] Formulare verstehen und auswerten | WarrenFaith | Tutorials | 5 | 21.03.2006 17:11 |
| Tutorial: Eingabeüberprüfung eines Formulars | UNeverNo | PHP-Programmierung | 2 | 02.03.2006 13:39 |
| [PHP] Ein einfaches Template-System | MrNiceGuy | Tutorials | 0 | 09.10.2005 18:30 |