Jetzt wird es interaktiv. Denn bisher haben wir die Inhalte von Variablen selbst bestimmt. Jetzt wollen wir Variablen mit Benutzereingaben aus Formularen füllen. Eines der wichtigsten Programmiertätigkeiten in PHP. Ein Beispiel: Wir erstellen ein Formular mit einem Eingabefeld. Der Benutzer soll seinen Namen in das Eingabefeld eingeben. Nachdem er das Formular abgeschickt hat, soll ein Begrüßungstext mit dem Namen des Benutzers erscheinen.
Jetzt ist wichtig zu verstehen, wie Formulareingaben ausgewertet werden. Inhalte von Formularen können nur dann Variablen zugewiesen werden, wenn das Formular abgeschickt wurde. Nachdem das Formular abgeschickt wurde, muss eine Seite die Benutzereingaben entgegennehmen. Somit haben Sie 2 Seiten zu erstellen. Einmal die Seite mit dem Formular, dieser wird abgeschickt zur anderen Seite, die Benutzereingaben entgegennimmt und daraus unseren Begrüßungstext erstellt. Es ist auch möglich, das Formular auf die Seite selbst abzuschicken. So benötigt man nur eine Seite. Aber dazu sind Abfragekenntnisse sinnvoll. Das haben wir bisher nicht gemacht. Also erstellen wir erstmal ein Beispiel mit 2 Seiten.
Zuerst der Code für das Formular:
<form name="formular" method="post" action="formularauswertung.php">
<input type="text" name="benutzereingabe">
<input type="submit" name="submit" value="Senden">
</form>
Wenn wir nun dieses Formular über "Senden" abschicken, werden die Eingaben an formularauswertung.php geschickt. Dieser beinhaltet folgenden Code, um die Benutzereingabe auszuwerten und wiederzugeben:
<?php
$benutzername = $_POST['benutzereingabe'];
echo $benutzername;
?>
Jetzt wollen wir mal die Zusammenhänge erkennen. In unserem Formular haben wir ein Textfeld mit dem Namen (name="benutzereingabe") benutzereingabe. Sobald wir dieses Formular abschicken, übergeben wir das Formular an die Datei formularauswertung.php (action="formularauswertung.php"). In der Datei formularauswertung.php lesen wir die das Textfeld benutzereingabe aus und übergeben den Inhalt der Variable $benutzername ($benutzername = $_POST['benutzereingabe'];). Mit echo geben wir dann $benutzername wieder aus. Der Ablauf und die Codes dazu sollten klar sein. Was hat es aber mit diesem POST und den eckigen Klammern auf sich?
Die Methode auswählen um Formular abzuschicken
Wenn wir Formulare abschicken, so müssen wir dem Server mitteilen, mit welcher Methode diese Daten geschickt werden. Dabei gibt es die Post und die Get Methode. Wir haben in unserem Fall die Daten mit der Methode Post abgeschickt (method="post"). Die Datei formularauswertung.php empfängt nun die Daten.
Variablenzuweisung aus Formular, das mit Post abgeschickt wurde
Wenn die Datei formularauswertung.php nun die Daten aus dem Formular bekommt, möchten wir die Inhalte wieder Variablen zuweisen. Da ein Formular oft aus mehreren Eingabefeldern besteht, bekommt die empfängende Datei nun ein sogenanntes Array. Wenn die Methode Post gewählt wurde, heißt unser Array $_POST. Der Clou an der Sache ist, dass ein Array mehrere Daten enthalten kann. Ist ja logisch. Grade wenn wir mehrere Eingabefelder in unserem Formular haben muss er ja mehrere Daten haben. Nun müssen wir, wenn wir ein Wert aus unserem Formular einer Variablen zuweisen wollen, quasi den Wert aus dem Array auslesen. Das geschieht in unserem Fall mit $benutzername = $_POST['benutzereingabe']; wobei anzumerken ist, dass die Inhalte von einem Array immer in eckigen Klammern stehen. Der Name benutzereingabe ist übrigens der Name, den wir bei der Erstellung des Formulars für dieses Eingabefeld benutzt hatten (<input type="text" name="benutzereingabe">) und da dieser Text ist, wird er auch in Hochkomma gesetzt. Angenommen wir hätten mehrere Formularfelder die mitgeschickt werden. Beispielsweise text_a, text_b, text_c. So können wir die Inhalte wie folgt auslesen und den Variablen zuweisen:
$text_a = $_POST['text_a'];
$text_b = $_POST['text_b'];
$text_c = $_POST['text_c'];
$_POST ist also eine Art Hauptvariable wenn Formulare mit der POST-Methode abgeschickt wurden, die wiederum mehrere Variablen (Inhalte von Formularen) besitzt. Mit diesem Wissen wären Sie bereits in der Lage, Formulare mit mehrere Eingabefeldern z.B. auf der nächsten Seite auszuwerten und einen Vertrag mit den Daten die eingegeben wurden, zu erstellen. Machen Sie doch einfach einen Test.