PHP Schnellstart – Form Handling – Teil 1
In dieser Lektion lernst du, wie du Benutzereingaben, die du über ein Formular eingibst, mit Hilfe der PHP-Superglobal-Variablen $_GET, $_POST und $_REQUEST ausliest.
Einfaches Kontaktformular erstellen
In dieser Lektion werden wir ein einfaches HMTL-Kontaktformular erstellen, in das die Benutzer ihren Kommentar und ihr Feedback eingeben können. Es wir dann mit PHP im Browser angezeigt.
Wir erstellen zunächst eine PHP-Datei mit dem Namen "formular.php". Du kannst das entweder auf deinem Computer machen oder gleich den untenstehenden Code-Editor online benutzen.
In dieser Datei wird ein klassisches HTML-Kontaktformular mit Feldern zu Namen, Email, Betreff sowie der Nachricht erstellt.
<!DOCTYPE html>
<html>
<body>
<h2>Kontaktformular</h2>
<p>Fülle die Angaben aus, um uns zu kontaktieren.</p>
<form action="auswertung.php" method="post">
<p>
<label for="deinName">Name:<sup>*</sup></label>
<input type="text" name="name" id="deinName">
</p>
<p>
<label for="deineEmail">Email:<sup>*</sup></label>
<input type="text" name="email" id="deineEmail">
</p>
<p>
<label for="deinBetreff">Betreff:</label>
<input type="text" name="betreff" id="deinBetreff">
</p>
<p>
<label for="deinKommentar">Nachricht:<sup>*</sup></label>
<textarea name="nachricht" id="deinKommentar" rows="5" cols="30"></textarea>
</p>
<input type="submit" value="Absenden">
<input type="reset" value="Zurücksetzen">
</form>
</body>
</html>
Erklärung:
Beachte, dass es zwei Attribute innerhalb des öffnenden <form>-Tags gibt:
- Das action-Attribut verweist auf eine PHP-Datei "auswertung.php". Diese empfängt die in das Formular eingegebenen Daten, wenn der Benutzer es durch Betätigen des Absenden-Buttons abschickt.
- Das method-Attribut weist den Browser an, die Formulardaten per POST-Methode zu senden.
Der Rest der Elemente innerhalb des Formulars sind grundlegende Formularsteuerelemente, um Benutzereingaben zu empfangen. Um mehr über die Elemente des HTML-Formulars zu erfahren, schau dir bitte unsere HTML-Tutorials oder den HTML-Schnellstart Kurs an.
Formulardaten mit PHP erfassen
Um auf den Wert eines bestimmten Formularfeldes zuzugreifen, kannst du die folgenden Superglobals (Variablen) verwenden.
Diese Variablen sind in allen Bereichen eines Skripts verfügbar:
Superglobal | BESCHREIBUNG |
---|---|
$_GET |
Enthält eine Liste aller Feldnamen und Werte, die von einem Formular mit der get-Methode (d.h. über die URL-Parameter) gesendet werden. |
$_POST |
Enthält eine Liste aller Feldnamen und Werte, die von einem Formular mit der Post-Methode gesendet werden (die Daten sind in der URL nicht sichtbar). |
$_REQUEST |
Enthält sowohl die Werte der Variablen $_GET und $_POST als auch die Werte der superglobalen Variable $_COOKIE. |
Wenn ein Benutzer das obige Kontaktformular durch Anklicken des Absenden-Buttons abschickt, werden die Formulardaten zur Verarbeitung an die Datei "auswertung.php" auf dem Server gesendet. Diese Datei erfasst lediglich die vom Nutzer übermittelten Informationen und zeigt sie im Browser an.
Der PHP-Code der Datei sieht in etwa so aus - auswertung.php:
<!DOCTYPE html>
<html>
<head>
<title>Kontaktformular</title>
</head>
<body>
<h2>Das hat geklappt!</h2>
<p>Du hast folgende Info ans uns übermittelt:</p>
<ol>
<li><em>Name:</em> <?php echo $_POST["name"]?></li>
<li><em>Email:</em> <?php echo $_POST["email"]?></li>
<li><em>Betreff:</em> <?php echo $_POST["betreff"]?></li>
<li><em>Nachricht:</em> <?php echo $_POST["nachricht"]?></li>
</ol>
</body>
</html>
Der obige PHP-Code ist recht simpel. Da die Formulardaten mit der POST-Methode gesendet werden, kannst du den Wert eines bestimmten Formularfeldes abrufen, indem du seinen Namen an das superglobale Array $_POST übergibst. Rufe dann den jeweiligen Feldnamen über den echo-Befehl auf.
In der Praxis kannst du den Benutzereingaben nicht trauen. Du musst eine Art Validierung implementieren, um die Benutzereingaben zu filtern, bevor du sie verwendest. In der nächsten Lektion lernst du mehr zur Validierung von Input. Doch zunächst wollen wir üben.
Deine Aufgabe - Jetzt bist du gefragt:
Im untenstehenden Editor findest Du das oben aufgeführte Kontaktformular. Du kannst es dort ausprobieren, indem du ein paar Dummy-Eingaben in den Feldern machst und das Formular dann absendest.
Deine Aufgabe: Ergänze den PHP-Code in der Datei "auswertung.php", damit auch die Benutzereingabe für das "Betreff"-Feld nach dem Absenden des Formulars mit dem echo-Befehl angezeigt wird
Code-Editor:
[lp_spoiler title="Lösung zur Aufgabe anzeigen" class="da"]
Mit diesem Code kannst du den User-Input des "Betreff"-Feldes anzeigen:
<?php echo $_POST["betreff"]?>
[/lp_spoiler]
Zusammenfassung zum Form Handling
Das waren die wichtigsten Grundlagen, um User-Daten aus Formularen auszuwerten und über die Superglobals mit dem echo-befehl anzuzeigen. In der nächsten Lektion bauen wir auf dieses Wissen auf. Du lernst dort, wie du Benutzer-Inputs validierst.