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)!
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 5 bis 7).
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'] == "" )
{
// Formulareintragungen liegen (noch) nicht vor
// Punkt 2: Feld Nachname leer?
if ( $_GET['nachname'] == "" )
{
// Punkt 3: Formular bereits schon mal aufgerufen
if ( $_GET['schon_mal_abgesendet'] == "ja" )
{
// Punkt 4: Fehlermeldung - Feld Nachname ausfüllen
echo "<p>Hinweis: Bitte Feld Nachname ausfüllen</p>";
}
}
// Punkt 4.5: HTML-Tag für Formular
echo '<form action="reservierung.php" method="GET">';
// Punkt 5: Feld "zeichnen" für Nachname
echo 'Nachname: ';
echo '<input type="text" name="nachname" value="';
// Punkt 6: ausgabe von eventueller Inhalt von Nachname
echo $_GET['nachname'];
// Punkt 7: Ende vom Formularfeld Nachname
echo '" size="20" maxlength="60" />';
// Punkt 8: Test, ob Anzahl leer ist
if ( $_GET['anzahl'] == "" )
{
// Punkt 9: Formular bereits schon mal aufgerufen
if ( $_GET['schon_mal_abgesendet'] == "ja" )
{
// Punkt 10: Fehlermeldung - Feld Anzahl ausfüllen
echo "<p>Hinweis: Bitte Feld Anzahl ausfüllen</p>";
}
}
// Punkt 11: Formularfeld Anzahl zeichnen
echo '<p>Anzahl der gewünschten Reservierungen:';
echo '<input type="text" name="anzahl" value="';
// Punkt 12: eventuell vorhandene Werte in Vorgabe (value)
echo $_GET['anzahl'];
// Punkt 13: Abschluss des HTML-Tags
echo '" size="4" maxlength="4" />';
// Punkt 14: Feld zur Kontrolle für Zweitaufruf
echo '<input type="hidden" name="schon_mal_abgesendet"
value="ja" />';
// Punkt 15: Submit-Button zum absenden der Eingaben
echo '<br />';
echo '<input type="Submit" name="" value="absenden" />';
// Punkt 15.5: Ende vom Formular
echo '</form>';
// Punkt 16
echo "<p>Bitte alle Felder ausfüllen</p>";
exit;
}
else
{
// Punkt 17: 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!