PHP 4.3

4.8 Fehler abfangen

In Lerneinheit 3 haben Sie gelernt, wie Sie mittels PHP Formulardaten übertragen können. Leider war es zu diesem Zeitpunkt noch nicht möglich, auftretende Ausgabefehler, die aus fehlerhaften Eingaben des Benutzer entstehen, zu verhindern.

Solche Ausgabefehler können auftreten:

  • wenn ein Skript direkt aufgerufen wird, ohne dass die benötigten Parameter für die Werte eines Formulars übergeben werden,
  • wenn Benutzer nicht alle Felder eines Formulars ausgefüllt haben,
  • wenn Werte eingegeben wurden, die außerhalb eines Grenzwertes liegen (denken Sie beispielsweise an negative Bestellmengen oder fehlerhafte Datumsangaben)

Im Folgenden möchten wir Ihnen Wege aufzeigen, auf denen Sie mit der if-Anweisung prüfen können, ob ein Wert vorliegt bzw. ob der Wert sich innerhalb eines definierten Bereichs befindet.

Wir beziehen uns dabei auf ein Skript aus der dritten Lerneinheit:

Einkaufsformular: einkaufen.html
<html>

 <head>
  <title>Mein erstes Formular</title>
 </head>

 <body>

  Heute kosten alle Artikel 5,99 Euro<br><br>
  <form action="kaufen.php" method="get">
   <input type="Hidden" name="preis" value="5.99">
   Artikel <input type="Text" name="artikel">
   Menge <input type="Text" name="menge">
   <input type="Submit" name="submit" value="Kaufen">
  </form>

 </body>

</html>

Auswertung: kaufen.php
<html>

 <head>
  <title>Mein erstes Formular</title>
 </head>

 <body>

  <?php
    echo "Sie haben den Artikel <b>" . $HTTP_GET_VARS["artikel"] . "</b> " . $HTTP_GET_VARS["menge"] . 
" mal zum Gesamtpreis von " . ($HTTP_GET_VARS["menge"] * $HTTP_GET_VARS["preis"]) . " Euro gekauft.";
  ?>

 </body>

</html>

Das vorliegende Skript kaufen.php möchten wir folgendermaßen ändern:

1. Wenn das Skript direkt statt aus dem Formular aufgerufen wird, soll ein kurzer Hinweistext erscheinen.
2. Der Satz "Sie haben den Artikel..." soll nur erscheinen, wenn alle notwendigen Variablen in gültigen Wertbereichen vorliegen.

Um zu prüfen, ob das Skript zum ersten Mal gestartet wurde, benötigen wir eine PHP-Variable, die erst dann vorliegt, wenn das Formular abgesandt wurde. Diese Funktion kann die Variable $HTTP_GET_VARS["preis"] übernehmen. Sie "entsteht" gewissermaßen beim erstmaligen Absenden des Formulars.

Wir ergänzen das Skript um eine if-else-Anweisung, welche prüft, ob $HTTP_GET_VARS["preis"] bereits gesetzt wurde. Ist dies nicht der Fall, wird eine Hinweismeldung angezeigt. Liegt $HTTP_GET_VARS["preis"] vor, durchläuft das Skript den if-Zweig der Anweisung.

Kommentare (0)

Ihr Kommentar

Name