PHP-Variablen aus HTML-Formularen auslesen
Auf Websites werden für vielfältige Zwecke Formulare eingesetzt. Diese können Eingaben der Benutzer enthalten, die mit PHP entgegengenommen und verarbeitet werden können. Ein einfaches Beispiel hierfür ist ein Kontaktformular, das auf vielen Websites bereitgestellt wird. Damit man Formulareingaben auswerten und Variablen zuweisen kann, muss das Formular abgeschickt werden.
Das Formular wird an die Adresse abgeschickt, die im FORM-Tag innerhalb des Attributs action="..." angegeben wurde. Als Adresse kann man die Seite eintragen, die das Formular enthält. Das Formular wird in dem Fall quasi an sich selbst geschickt. Man kann aber auch eine andere Seite als Adresse eintragen, sodass die Formularseite und die auswertende PHP-Seite getrennt sind. Beim folgenden Beispiel sind diese beiden Seiten getrennt. Der Code für das HTML-Formular könnte wie folgt aussehen.
<form name="formular" method="post" action="auswertung.php">
<input type="text" name="eingabe">
<input type="submit" name="submit" value="Senden">
</form>
Das Formular enthält ein Eingabefeld mit dem Namen "eingabe" und eine Schaltfläche zum Abschicken des Formulars. Die Zieladresse des Formulars ist die Datei auswertung.php. In dieser Datei kann man mit entsprechenden PHP-Codezeilen die Daten auslesen, die der Benutzer vor dem Abschicken eingegeben hat. Mit dem folgenden PHP-Code kann der Inhalt des Textfelds einer Variable zugewiesen und mit echo ausgegeben werden.
<?php
$variable = $_POST['eingabe'];
echo $variable;
?>
Sobald das Formular abgeschickt wird, wird die Datei auswertung.php aufgerufen. Die Daten werden über den Standardeingabekanal (POST-Methode) übertragen. Es ist auch möglich, die Daten über die Adressleiste (GET-Methode) zu übertragen. Die Daten, die übertragen werden, befinden sich in einer Variable, die je nach Methode wie folgt benannt ist.
- $_POST (POST-Methode)
- $_GET (GET-Methode)
Die aufgerufene Datei bekommt die Daten über ein sogenanntes Array. Ein Array ist eine Variable, die mehrere Werte enthalten kann, wie das bei Formularen aufgrund der verschiedenen Formularfelder immer sein könnte. Wenn die POST-Methode gewählt wurde, heißt das Array mit den enthaltenen Daten $_POST, bei der GET-Methode heißt es $_GET.

Bei den Arrays gibt es Unterschiede. Es gibt Arrays mit einem Index und Arrays mit einem Schlüssel/Key, wobei anzumerken ist, dass die Inhalte von Arrays immer in eckigen Klammern stehen. Die beiden Arrays $_POST und $_GET zählen zu den assoziativen Arrays und das Auslesen geschieht über den Schlüssel bzw. Key. Wird ein Formular abgeschickt, kann ein Formularfeld ausgelesen werden, indem man als Schlüssel den Namen des Formularfelds innerhalb der eckigen Klammern eingibt.
<?php
// Bei POST-Methode
$_POST['formularfeld'];
// Bei GET-Methode
$_GET['formularfeld'];
?>
Angenommen man hätte mehrere Formularfelder, die mit der POST-Methode geschickt und wie folgt benannt wurden.
- anrede
- vorname
- nachname
Das HTML-Formular könnte wie folgt aufgebaut werden.
<form name="formular" method="post" action="auswertung.php">
<input type="text" name="anrede">
<input type="text" name="vorname">
<input type="text" name="nachname">
<input type="submit" name="submit" value="Senden">
</form>
Man könnte die Inhalte wie folgt auslesen, einer Variable zuweisen und ausgeben, z.B. in Form einer Begrüßung.
<?php
$anrede = $_POST['anrede'];
$vorname = $_POST['vorname'];
$nachname = $_POST['nachname'];
// Begrüßungstext ausgeben
echo 'Guten Tag ' . $anrede . ' ' $vorname . ' ' . $nachname;
?>
Die Punkte dienen in diesem Beispiel als Verkettungsoperatoren und die Leerzeichen sind manuell in Hochkommas gesetzt. $_POST und $_GET sind sozusagen eine Art Hauptvariablen, die mehrere Inhalte aus einem Formular enthalten.