www.PHP-Kurs.com

PHP lernen für Einsteiger
und Fortgeschrittene

PHP-Tutorial mit Videos

Sie befinden sich: Startseite » PHP lernen für Einsteiger » Formularauswertung » Affenformular Beispiel

Affenformular: Gültigkeitsprüfung bei Formularauswertung

Solange ungültige Eingabedaten vorliegen, ruft sich ein Formular selber wieder auf – das sogenannte Affenformular: Beispiel für Formularauswertung und Gültigkeitsprüfung um valide Eingabedaten durch den Nutzer zu erhalten.

Im Folgenden wird ein Reservierungssystem für z.B. Konzertkarten erstellt. Der Besucher kann seinen Namen hinterlassen und die gewünschte Anzahl an Karten. Vom Programm wird überprüft, ob sowohl Name wie auch Anzahl ausgefüllt wurde. Wird ein Feld (oder beide) vergessen, kommt beim betroffenen Feld ein Hinweis, dass hier die Eingabe fehlt. Dies wird über ein Affenformular gelöst – das Formular ruft sich selber auf, um die Eingaben zu überprüfen. Sind alle Eingaben in Ordnung, wird zum Auswertungsteil gegangen. Fehlen Eingaben, wird das Formular nochmals angezeigt, mit allen bisher gemachten Eingaben (damit der Nutzer nichts doppelt eingeben muss)!

Ablaufplan für Affenformular

Schauen Sie sich im ersten Schritt den Ablaufplan an, um die Logik vor sich zu haben. Zum einfachen nachvollziehen der einzelnen Programmschritte sind im Ablaufplan Nummern für die jeweiligen Schritte hinterlegt, die wieder im Quellcode zu finden sind.

Zum einfachen Nachvollziehen wurden einzelne Felder (z.B. das Formularfeld für den Nachnamen in 3 Schritte unterteilt – vergleiche Punkt 6 bis 8).

Quellcode für Affenformular-Beispiel Konzertkartenreservierung

Im Folgenden ist der komplette Beispielquellcode für das Karten-Reservierungssystem über ein Affenformular abgebildet. Ein Feedback an den Benutzer, wenn Eingaben leer gelassen werden, die notwendig sind, wird am Bildschirm anzeigt.

<?php
// Punkt 1: Abfrage Nachname und Anzahl ausgefüllt?
if ( $_GET['nachname'] == "" OR $_GET['anzahl'] == "" )
{
    // Punkt 2: HTML-Tag für Formular
    echo '<form action="reservierung.php" method="GET">';

    // Formulareintragungen liegen (noch) nicht vor
    // Punkt 3: Feld Nachname leer?
    if ( $_GET['nachname'] == "" )
    {
        // Punkt 4: Formular bereits schon mal aufgerufen
        if ( $_GET['schon_mal_abgesendet'] == "ja" )
        {
            // Punkt 5: Fehlermeldung - Feld Nachname ausfüllen
            echo "<p>Hinweis: Bitte Feld Nachname ausfüllen</p>";
        }
    }

    // Punkt 6: Feld "zeichnen" für Nachname
    echo 'Nachname: ';
    echo '<input type="text" name="nachname" value="';

    // Punkt 7: ausgabe von eventueller Inhalt von Nachname
    echo $_GET['nachname'];

    // Punkt 8: Ende vom Formularfeld Nachname
    echo '" size="20" maxlength="60">';

    // Punkt 9: Test, ob Anzahl leer ist
    if ( $_GET['anzahl'] == "" )
    {
        // Punkt 10: Formular bereits schon mal aufgerufen
        if ( $_GET['schon_mal_abgesendet'] == "ja" )
        {
            // Punkt 11: Fehlermeldung - Feld Anzahl ausfüllen
            echo "<p>Hinweis: Bitte Feld Anzahl ausfüllen</p>";
        }

    }

    // Punkt 12: Formularfeld Anzahl zeichnen
    echo '<p>Anzahl der gewünschten Reservierungen:';
    echo '<input type="text" name="anzahl" value="';

    // Punkt 13: eventuell vorhandene Werte in Vorgabe (value)
    echo $_GET['anzahl'];

    // Punkt 14: Abschluss des HTML-Tags
    echo '" size="4" maxlength="4">';

    // Punkt 15: Feld zur Kontrolle für Zweitaufruf
    echo '<input type="hidden" name="schon_mal_abgesendet" value="ja">';

    // Punkt 16: Submit-Button zum absenden der Eingaben
    echo '<br>';
    echo '<input type="Submit" name="" value="absenden">';

    // Punkt 17: Ende vom Formular
    echo '</form>';

    echo "<p>Bitte alle Felder ausfüllen</p>";
    exit;

}
else
{
    // Punkt 18: alle Angaben liegen vor, nun Auswertung
    echo "<p>Folgende Angaben wurden gemacht</p>";

    echo "<p>Nachname :";
    echo $_GET['nachname'];

    echo "<p>Anzahl der Reservierungen";
    echo $_GET['anzahl'];

    // Beispiel: speichern in Datei, Speichern in Datenbank,
    // E-Mail mit Inhalt versenden ...
}
?>

Aufgabe zur Erweiterung des Affenformulars: Erweitern Sie das Programm, damit überprüft wird, ob die Angabe der Anzahl der Karten auch eine Zahl ist. Es werden keine halben Plätze vergeben!

Wenn Sie einen Fehler finden, bitte mitteilen (egal ob Schreibfehler oder inhaltlicher Fehler).

Mit Maus fehlerhafte Stelle markieren und übernehmen mit folgendem Button:



(kann angegeben werden)

Nach Absenden kommt hier Feedback! Bitte nicht doppelt absenden. Danke.

Bitte unterstützen Sie dieses Projekt

Sie können dieses Projekt in verschiedenen Formen unterstützen - wir würden uns freuen und es würde uns für weitere Inhalte motivieren :).

unsere Videos bestellen

Unsere Videos und eBooks bestellen.

Spenden

Sie können uns eine Spende über PayPal zukommen lassen.

Weiterempfehlungen

Empfehlen Sie es weiter - wir freuen uns immer über Links und Facebook-Empfehlungen.

Bücher über Amazon

Bestellen Sie Bücher über folgende Links bei Amazon:

Fehler melden

Vielen Dank für Ihre Hilfe