Menü:

Tutorials / Formulareingaben auswerten

In diesem Tutorial lernen Sie, wie Sie über HTML Formulare Daten von Benutzern entgegennehmen- und diese auswerten können.

Es gibt mehrere Möglichkeiten Daten von Benutzern zu empfangen und mittels PHP auszuwerten. Die von Webseiten wohl am häufigsten gebräuchliche ist wohl die Nutzung von Formularen. Diese bieten verschiedene Eingabe-Felder (inputs) wie z.B. Textfelder (type="text"), Passwortfelder (type="password") und Checkboxen (type="checkbox").

Ein Formular wird immer mit dem <form>-Tag eingeleitet. Als Parameter folgen action="" und method="". Das Parameter action="" gibt an, an welche Datei die Benutzereingaben geleitet werden sollen. Wenn dies (wie es häufig der Fall ist) die Seite sein soll, auf der sich der Benutzer derzeit befindet, kann action="" einfach leer gelassen werden. Der 2. wichtige Parameter method="" gibt an, wie die Daten übermittelt werden sollen. Dabei gibt es zwei Möglichkeiten:

Ein Eingabefeld beginnt mit dem Tag <input> und die wichtigsten Parameter sind type (Bestimmt die Art des Felds also beispielsweise "text" oder "password"), name (Name des Feldes über den es später in PHP auch ausgelesen werden kann) und value (Wert, den das Feld standardmäßig haben soll).

Hier nun ein kommentiertes Beispiel:

<!--
action ist leer, da als Zielseite die selbe Seite verwendet werden soll
method ist "post", da die angegebenen Daten versteckt Ã¼bermittelt werden sollen.
-->
<form action="" method="post">
    <!-- Textfeld zur Eingabe des Benutzernamens -->
    Benutzername: <input type="text" name="user" value="" />
    <br />
    <!-- Spezielle Textfeld für Passwörter für die Eingabe des Passworts -->
    Passwort: <input type="password" name="pass" value="" />
    <br />
    <!-- Button zum absenden (submit) des Formulars. Der Wert des Parameters name wird zur späteren Erkennung im PHP Skript genutzt, value ist in diesem Fall die Beschriftung des Buttons -->
    <input type="submit" name="form1" value="Login" />
</form>
Beispiel aufrufen

Doch wie kann man die hier vom Benutzer versendeten Werte verwenden? Dies passiert mit PHP welches die Felder anhand des Parameters name auslesen kann. Dies geschieht folgendermaßen, je nach verwendeter Formular-Methode (method="?") unterschiedlich. Die Beispiele beziehen sich auf das vorherige Beispiel und lesen den Benutzernamen aus bei zwei unterschiedlichen Angaben für method.

Dem Beispiel kann man entnehmen, dass man bei einem POST-Formular den Wert eines Feldes mit der Variable $_POST['name'] auslesen kann. Bei einem GET-Formular ist es die Variable $_GET['name'].

So, nun haben Sie gelernt wie man Werte aus einem Formular auslesen kann. Nun wird das erste Beispiel noch fortgeführt - es wird mittels PHP nun dynamisch gemacht und zwar so, dass der Login funktioniert wenn als Benutzername "Klaus" und als Passwort "xyz123" verwendet wird:

<?php
// Wenn die Variable $_POST['form1'] definiert wurde, also das Formular versand wurde, den Code zwischen { und } ausführen
if(isset($_POST['form1'])){

    
// Benutzername und Passwort in eigene Variablen sichern
    
$user $_POST['user'];
    
$pass $_POST['pass'];

    
// Benutzername und Passwort Ã¼berprüfen
    
if ( $user == "Klaus" && $pass == "xyz123" ){

        
// Wenn die Bedingung also der Login stimmte, Erfolgsmeldung ausgeben
        
echo "Der Login war erfolgreich!<br /><br />";

    }else{

        
// Sonst eine Fehlermeldung zurück geben
        
echo "Der Login scheiterte, bitte Ã¼berprüfen Sie Ihre Angaben!<br /><br />";

    }

}
?>

<!--
Dies ist das selbe Formular wie im 1. Beispiel. Die Kommentare wurden entfernt.
-->
<form action="" method="post">
    Benutzername: <input type="text" name="user" value="" />
    <br />
    Passwort: <input type="password" name="pass" value="" />
    <br />
    <input type="submit" name="form1" value="Login" />
</form>
Beispiel aufrufen