Formulare mit PHP erstellen und überprüfen

Anhand eines einfachen Beispiels wird der Aufbau eines Formulars mit Überprüfung erläutert.

Wenn das Formular abgesendet wird und die Eingabewerte nicht korrekt sind, wird das Formular wieder dargestellt und die alten Werte werden als Standardwerte wieder eingesetzt. Damit kann der Benutzer sie korrigieren, ohne diese noch einmal alle eingeben zu müssen. Diese Vorgehensweise wird als „Affenformular” bezeichnet (de.wikipedia.org/wiki/Affenformular).

Demo

Die Sendung lautet: "Hase" (zum testen einen "falschen Hasen" eingeben )

Formular erstellen

Das Formular besteht hier im Beispiel aus drei HTML-Elementen, den <form>-Tag, den <input>-Tag (Typ: Text) um einen Wert einzugeben. Und einem Button (Typ: Submit) um das Formular abzusenden.

1
2
3
4
<form action="formular.php" method="post">
 Sendung: <input type="text" name="sendung" value="">
 <input type="submit">
</form>

Innerhalb des Formulars werden doppelte Anführungszeichen ( " ) verwendet, die einfachen Anführungszeichen ( ' ) werden für die PHP-Variable benötigt.
Dies muss man unbedingt beachten, ansonsten können PHP-Fehler auftreten und das Script läuft dann nicht.

Formular in PHP einbauen

Nun wird das Formular in die PHP-Variable $formular gesetzt.
Hier werden nun die einfachen Anführungszeichen ( ' ) verwendet.
$formular = ' ';

1
2
3
4
5
6
<?php
$formular 
'<form action="formular.php" method="post">
 Sendung: <input type="text" name="sendung" value="">
 <input type="submit">
</form>';
?>

Formulareingaben überprüfen

Nachfolgend finden Sie die Beschreibung zur Datei: "formular.php"

Zuerst wird in der Zeile: 12 der Variable $sendung, ein Wert zugewiesen.
Wenn das Formular gesendet wurde, enthält diese Variable die Eingabe des Benutzers.
$sendung = isset($_POST["sendung"]) ? $_POST["sendung"] : ""

Danach setzt man $sendung in die Variable $formular (Zeilen: 15 bis 18).
Diese Vorgehensweise bewirkt das eingegebene Daten, nach dem absenden des Formulars, wieder angezeigt werden.

In Zeile: 21 wird überprüft ob Daten über "POST" gesendet wurden.
if ($_SERVER["REQUEST_METHOD"] == "POST") {…

In Zeile: 24 wird die Eingabe des Benutzers überprüft (verglichen).
if ($_POST["sendung"] == "Hase") {…

Ab Zeile: 27 wird eine Fehlermeldung bei einer falschen Eingabe zusammen mit dem Formular ausgegeben.

Ab Zeile: 34 wird das Formular ausgegeben (wenn noch keine Daten über POST gesendet wurden).

Quelltext „formular.phpKopierenAusblendenZeilen

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<!DOCTYPE html>
<html lang="de">
 <head>
  <meta charset="UTF-8">
  <title>Formular</title>
 </head>
<body>

<?php
// Variable $sendung einen Wert zuweisen (Wenn das Formular 
// gesendet wurde, enthält die Variable die Eingabe des Benutzers)
$sendung = isset($_POST["sendung"]) ? $_POST["sendung"] : "";

// Formular erstellen
$formular '<form action="formular.php" method="post">
 Sendung: <input type="text" name="sendung" value="' $sendung '">
 <input type="submit">
</form>';

// Wurden Daten über POST gesendet?
if ($_SERVER["REQUEST_METHOD"] == "POST") {

 
// Hier wird die Eingabe überprüft
 
if ($_POST["sendung"] == "Hase") {
  echo 
'<p>Richtig - <a href="formular.php">Noch einmal!</a></p>';
 }
 else {

  
// Bei einer falschen Eingabe wird eine Fehlermeldung 
  // zusammen mit dem Formular ausgegeben.
  
echo '<p>Leider falsch!</p>$formular;
 }
}
else { 

 
// Das Formular wird ausgegeben wenn noch keine 
 // Daten über POST gesendet wurden.
 
echo $formular;
}
?>

</body>
</html>

Tipp

Der Formular Generator erstellt genau solche Scripte automatisch. Die erstellten Scripte können die Daten zum Beispiel als E-Mail versenden, in einer Datei oder Datenbank speichern.