Affenformular Beispiel

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!