vorige Präsentation: PHP und E-Mail | zurück zum Buch-Kapitel [esc] | Nächste Präsentation Datei Upload
Der Zusammenhang zwischen Web-Formular, http-Request und den Arrays $_POST und $_GET in PHP sollte Ihnen schon klar sein.
Die Daten aus einem Web-Formular werden vom PHP-Interpreter verarbeitet, die Codierung aufgelöst und die Daten dann in mehreren superglobalen12 Arrays zur Verfügung gestellt:
Warnhinweis: In frühen PHP Versionen konnte man noch direkt die Variable $nr verwenden um den Wert aus einem Eingabefeld <input name=”nr”> zu lesen — das funktioniert heute nicht mehr!
Um einen GET-Request zu verarbeiten haben wir bisher ein sehr simples Programm verwendet:
<?php
$anzahl = $_GET['anzahl'];
$adresse = $_GET['adresse'];
echo("<p>Ihre Bestellung über $anzahl Flugzeuge ist eingelangt</p>");
echo("<p>Die Flugzeuge werden binnen 1 Monat an $adresse geliefert</p>");
?>
Dabei wird aber die Eingabe nicht geprüft. Eine bessere Version des Programmes prüft vorher jede Eingabe und gibt entsprechende Fehlermeldungen aus:
<?php
$fehler = array(); // sammelt alle Fehlermeldungen
if ( ! isset($_GET['anzahl']) or
! $anzahl = filter_var( $_GET['anzahl'], FILTER_VALIDATE_INT ) ) {
$fehler[] = "Bitte geben Sie die Anzahl der Flugzeuge ein - als Zahl!";
}
if ( ! isset($_GET['adresse']) or
! $adresse = filter_var( $_GET['adresse'], FILTER_SANITIZE_STRING ) ) {
$fehler[] = "Bitte geben Sie die Lieferadresse an!";
} elseif ( strlen( $adresse ) < 5 ) {
$fehler[] = "Die Lieferadresse ist zu kurz - mindestens 5 Buchstaben!";
}
if ( $fehler ) {
echo("<p>Ihre Bestellung kann derzeit nicht bearbeitet werden:</p>");
echo("<ol>");
foreach( $fehler as $fehler_text ) {
echo("<li>$fehler_text</li>");
}
echo("</ol>");
echo("<p>Bitte gehen Sie zurück und bessern Sie die Bestellung aus.");
} else {
echo("<p>Ihre Bestellung über $anzahl Flugzeuge ist eingelangt</p>");
echo("<p>Die Flugzeuge werden binnen 1 Monat an $adresse geliefert</p>");
}
?>
vorige Präsentation: PHP und E-Mail | zurück zum Buch-Kapitel [esc] | Nächste Präsentation Datei Upload
/
#