In PHP Daten aus Web-Formularen verarbeiten
als Präsentation ▻Der Zusammenhang zwischen Web-Formular, http-Request und den Arrays $_POST
und $_GET
in PHP sollte Ihnen schon klar sein.
Daten prüfen
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:
- $_GET
- Dieses Array enthält die Parameter einer GET-Anfrage.
- $_POST
- Dieses Array enthält die Parameter einer POST-Anfrage.
- $_REQUEST
- Dieses Array kombiniert die Daten aus $_GET und $_COOKIE und $_POST. Besser die spezifischen Arrays verwenden!
- $_FILE
- Enthält Daten von hochgeladenen Dateien
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>"); } ?>
Kapitel
- Das Web Und Html
- Css
- Css Layout
- Urls
- Formulare
- Javascript Dom
- Jquery
- Kommandozeile
- Git
- Http
- Php Vorbereitung
- Php
- Php Db Lesen
- Session
- Php Db Schreiben
- Php Db Optimierung
- Grafik
- Javascript
- Applied Jquery And Css
- Json
- Xml
- Security
- Injection
- Authentifizierung und Session-Management
- Cross Site Scripting (XSS)
- Unsichere direkte Objektreferenzen
- Sicherheitsrelevante Fehlkonfiguration
- Verlust der Vertraulichkeit sensibler Daten
- Fehlerhafte Autorisierung auf Anwendungsebene
- Cross-Site Request Forgery (CSRF)
- Nutzung von Komponenten mit bekannten Schwachstellen
- Ungeprüfte Um- und Weiterleitungen
- Wordpress
- Apache
- Advanced Javascript
- Qualitaet