PHP-Grundlagen: Formulare und PHP Teil 1

Formularkurs mit PHP: ein erstes Feld abfragen

Mit diesem Artikel beginnt ein kleiner Kurs, wie man HTML-Formulare und PHP zu einer Einheit zusammenführen kann. Das Ziel ist eine Schritt-für-Schritt-Lösung für jene, die etwas nachlesen wollen, aber vor allem für jene, die sich die Technik erstmals anschauen wollen. Man könnte manche Schritte zusammenführen, aber das werde ich hier bewusst unterlassen.

Außerdem geht es vor allem bei den ersten Schritten nicht um Grafik. Es wird ein 08/15-Formular ohne weiteren Inhalt genutzt, um verarbeitet zu werden. Grafische Verbesserungen sind Sache von HTML und CSS und sind nicht das Thema dieses Kurses.

Formular als Vorlage für den Kurs

<?php
if($abgeschickt == 1) {
echo "<p>Sie haben den Namen $name eingetragen.</p>";
} else {

echo "<form method='POST' action=". $PHP_SELF.">";
echo "<input type='text' name='name' /><br />";
echo "<input type='submit' value='Abschicken!' />";
echo "</form>";
}
?>

Mit diesem Formular, das nur ein Feld enthält, ist die Grundbasis für die Formularbearbeitung gelegt. Ein Besucher ruft das Formular auf und gibt im vorgesehenen Feld die gewünschten Daten ein und klickt auf Abschicken. Die viel spannendere Frage ist, was mit seiner Information passiert und was es mit der Abfrage $abgeschickt == 1 auf sich hat.

Abgeschicktes Formular auswerten

Diese Abfrage wird üblicherweise am Beginn des Dokuments eingetragen. Theoretisch wäre auch ein eigenes Dokument denkbar.

<?php
if($_SERVER["REQUEST_METHOD"] == "POST") {
$name = $_POST["name"];
$abgeschickt = 1;
}
?>

Das Skript erkennt, dass per POST Daten vom Formular eingelangt sind. Die Daten werden in die Variable $name übertragen, aber noch nicht weiter verarbeitet. Da Daten gekommen sind, stellt man $abgeschickt auf 1 und das ist dann auch die Begründung für das Formular.

Erläuterungen zum Beispiel

Dieses Beispiel stellt den ersten Schritt zur Verarbeitung von Daten bei POST dar. Es besteht aus zwei Teilen: das Herzstück ist das Formular, mittels dem mit dem Besucher kommuniziert wird. Es hat nur ein Datenfeld, das wir "name" bezeichnet haben. Außerdem ist das Formular (FORM-Tag) so definiert, dass es die Methode POST (GET wäre auch möglich gewesen) verwendet und dass das Formular das gleiche Dokument nochmals aufruft, weil wir im Kopfteil die Verarbeitung vorgesehen haben.

Im Kopfteil, noch vor der HTML-Definition, wird ein PHP-Block eingerichtet. Hier wird gefragt, ob mittels POST Daten geschickt wurden. Wenn ja, wird in die variable $name der Wert dessen gespeichert, was der Besucher im gleichnamigen Datenfeld eingetragen hat. Außerdem legen wir die Variable $abgeschickt an und definieren 1 als erledigte Verarbeitung. Ist das Formular nicht abgeschickt worden, zum Beispiel, weil man die Seite gerade über die Navigation aufgerufen hat, dann liegt GET vor und die Zuweisung findet nicht statt.

Danach wird die HTML-Seite angelegt und der BODY-Tag wartet auf Inhalt. Hier setzen wir nochmals an und stellen die Frage, ob die Variable $abgeschickt den Wert 1 hat. Wenn das Formular gar nicht abgeschickt wurde, ist die Variable nicht vorhanden und die Bedingung ist nicht erfüllt. Ist es abgeschickt worden, dann haben wir den Wert 1 ja zugewiesen.

In dem Fall haben wir bestätigt, dass das Formular abearbeitet wurde und es wird das Ergebnis gezeigt - ein Satz, in dem der Name, den der Besucher eingetragen hatte, gezeigt wird. Hier könnte man natürlich grafisch arbeiten - den Namen Fett oder Kursiv zeigen etc. - doch das ist nicht unser Thema. Ist die Variable $abgeschickt nicht gegeben und nicht 1, dann wird das Formular gezeigt. Zu beachten ist, dass die else-Schleife von PHP das Formular umschließt (beachten Sie die {}-Klammersetzung!).

Dieses Beispiel ist sehr simpel, zeigt aber, wie man mit $_POST Daten aus einem Formular erhalten kann und zeigt auch, wie man vermeiden kann, dass das Formular nochmals gezeigt wird - denken Sie daran, dass Formulare auch sehr lang und komplex sein können und die Leute suchen müssen, ob der Versand jetzt geklappt hat oder nicht!

Diesen Artikel teilen

Kategorien

Grundlagen
HTML-Grundlagen
CSS-Grundlagen
Javascript-Grundlagen
PHP-Grundlagen
MySQL-Grundlagen
SEO-Grundlagen

Infos, Tipps, Vermarktung
Webdesign-Lexikon
Online-Werbung
PHP-Codeschnipsel