====== 1.4.1) Formulare ====== Mit PHP kann man **interaktive Webseiten** erstellen, bei denen **Benutzereingaben aus Formularen durch PHP ausgewertet** werden. Die **Darstellung der Formulare** wird mit **HTML-Code** umgesetzt. Die Daten aus dem Formular werden dabei **per HTTP** mit den **Methoden POST oder GET** an das **auswertende PHP-Programm** übermittelt. {{http://2.bp.blogspot.com/-Y3I4eNUzdt0/VFTA2CgINyI/AAAAAAAAU7w/zUYYGUt1Z_4/s1600/difference_between_get_and_post_method.png}} ===== Methoden der Datenübertragung ===== ==== POST ==== * Angabe von ''method="POST"'' im einleitenden HTML-Tag ''
'' * Formulardaten werden direkt an die Webadresse versendet. * Daten können nicht in der Adresszeile des Browsers manipuliert werden. Optionen sind nur über das Formular möglich. * Daten werde nicht im Logfile des Servers gespeichert. * Formulardaten sind nicht im Verlauf des Browsers sichtbar. * Längere Texte oder Daten können in Formularen übermittelt werden, da keine Beschränkung der Größe besteht. ==== GET ==== * Angabe von ''method="GET"'' im einleitenden HTML-Tag '''' * Formulardaten werden in der URL übermittelt und werden dann durch den Server in einer speziellen Umgebungsvariablen zwischengespeichert. * Daten sind in der Adresszeile des Browsers änderbar, ohne das Formular erneut ausfüllen zu müssen. * Der Aufruf des Skripts mit Angabe der Daten kann als Favorit abgelegt werden. * Daten sind auf ca. 2KB beschränkt. Da bei der Methode GET die Daten über die URL an den Server weitergegeben werden, ist es möglich, die Daten zu manipulieren. Die sicherere und am häufigsten genutzte Methode ist daher die Methode POST. ===== Formulare auswerten mit PHP ===== ==== Formulardaten eingeben ==== Zur Eingabe von Formulardaten, genügt eine HTML-Datei, in der ein Formular integriert ist: === formular_eingabe.html===

Bitte füllen Sie die nachfolgenden Eingabefelder aus:

Vorname:
Nachname:
Wohnort:

==== Formulardaten übertragen ==== Klickt man auf den Button "Abschicken", wird das in ''action'' angegebene Skript (''formular_auswertung.php'') gestartet. ==== Formulardaten auswerten ==== Die mit der Methode POST übermittelten Daten wird mit dem Befehl ''$_POST["Parameter"]'' angesprochen. Der Name des Eingabefeldes im Formular (z.B. ''name="vorname"'') wird automatisch Element der Variablen ''$_POST'' (z.B. ''$_POST["vorname"]'') Der Eintrag des Eingabefeldes im Formular wird bei der Auswertung zum Wert der Variablen, z.B. ''$_POST["vorname"]'' = "Max" . === formular_auswertung.php === Folgende Daten wurden übermittelt:

\n"; echo "Vorname: " .$_POST["vorname"] ."
\n"; echo "Nachname: " .$_POST["nachname"] ."
\n"; echo "Wohnort: " .$_POST["ort"] ."
\n"; ?>
===== Formular und Auswertung in einer Datei ===== Das Formular und die Auswertung können in einer Datei zusammengefasst werden. Mit einer if-Abfrage kann überprüft werden, ob der Submit-Button gedrückt wurde oder nicht. ===pizzabestellung.php=== Pizzabstellung
Pizza Margarita zum günstigen Preis von 5.50 Euro bestellen!
Name: Lieferadresse: Anzahl der Pizzen:



Für folgende Bestellung wird gedankt:

"; echo "Name: ".$_POST["name"]."
"; echo "Lieferadresse: ".$_POST["adresse"]."
"; if ($_POST["anzahl"]<>0) { echo "Menge beträgt ".$_POST["anzahl"]." Stück zum Preis von ".$_POST["anzahl"]*5.50." Euro"; } } ?>
===== Überprüfen des mitgeschickten Arrays mittels POST ===== print_r($_POST); var_dump($_POST); ''print_r()'' Zeigt den Inhalt der Variablen in lesbarer Form an. ''var_dump()'' geht einen Schritt weiter, es können auch, durch Beistriche getrennt, mehrere Variablen angegeben werden. Die Informationen sind detaillierter. Sie enthalten auch Typ und Länge der Variablen. ''var_dump(Variable 1[, Variable 2,...]);'' Das gesamte mittels POST übermittelte Array wird ausgegeben. ==== Beispiel Newsletter ==== /* * [[:informatik:k6inf:php:Beispiel Newsletter]] */