q2:php_formulare

Im Folgenden Abschnitt werden wir ein Formular erstellen, welches wir mit PHP auswerten können. Wir verwenden dafür ein standardmäßiges HTML-Formular in einer neu erstellten PHP Datei:

<body>
  <form action="" method="POST">
    Vorname: <input type="text" name="vorname" required>
    Nachname: <input type="text" name="nachname" required>
    <input type="submit" value="Weiter">
  </form>
</body>


Die "<form>"-Tags werden in HTML verwendet, um ein Formular zu erstellen. Das Attribut „action“ gibt dabei an, auf welche Webseite man weitergeleitet werden soll, wenn man seine Eingabe mit dem Knopf bestätigt. Wir werden auf der gleichen Seite bleiben, also verwenden wir leere Anführungszeichen. Man kann natürlich auch den Namen der jetzigen Datei für eine Bearbeitung auf der gleichen Seite verwenden. Man kann die Bearbeitung aber auch einer anderen Datei überlassen und diese angeben.
Als Attribut „method“ verwenden wir „POST“. Hierzu werdet ihr später noch mehr erfahren.
„<input>“-Tags verwendet man für alle möglichen Eingabefelder. Unsere haben den Typ Text und jeweils einen Namen, in dem Fall „vorname“ und „nachname“, damit wir das Eingegebene später verwenden können. Hier kann man eine Übersicht über alle verfügbaren Typen sehen.
Das „required“ am Ende der beiden <input> Tags zwingt den Nutzer, etwas in die Felder einzufügen, bevor dieser auf „Weiter“ drückt.
Der „<input>“-Tag mit dem Typ „submit“ ist der Knopf um das Formular abzusenden. Das Attribut „value“ wird hier geändert, um den Text zu verändern, der auf dem Knopf steht.
Nach Speichern des Dokuments und Neuladen der localhost-Seite, sehen wir nun dieses Formular:


Übertragungsmethoden

Bei der Übertragungsmethode, einzugeben im „method“-Attribut des „<form>“-Tags, handelt es sich um die Art der Übertragung der Formulardaten – es gibt die Möglichkeiten „GET“ und „POST“.
Bei der Methode „GET“ werden die Daten per Link weitergegeben. Diese Übertragungsart habt ihr bestimmt schon einmal unbewusst gesehen. In dem Link werden dann die übertragenen Daten beispielsweise so weitergegeben: „http://localhost?vorname=max&nachname=mustermann“. Diese Art der Übertragung wird aber als eher unsicher angesehen, da man dort als Nutzer übertragene Daten über den Link bearbeiten kann. Auch werden alle Daten in der Regel für längere Zeit in der Chronik gespeichert.
Wir verwenden bei unserem Beispiel die Methode „POST“. Bei dieser werden die Formulardaten direkt übertragen und sie sind nicht im Nachhinein über den Link abrufbar oder veränderbar. Diese Methode sollte deshalb insbesondere bei wichtigen und empfindlichen Daten vorgezogen werden.
Übertragene Daten über beide Methoden werden in PHP in den Variablen \$_GET bzw. \$_POST als Array gespeichert und können in PHP verwendet werden (siehe Auswertung).

Um die Daten nun nach Drücken des Knopfes zu verwenden, müssen wir diese erst einmal mit PHP aufrufen. Das geht bei den Übertragungsarten „POST“ und „GET“ ähnlich. Wir verwenden \$_POST[„name“], bei der „GET“ Art würden wir \$_GET[„name“] verwenden. (Vergesst nicht, dass unser PHP-Code immer in den PHP-definierten Bereich muss).

Bei unserer Webseite werden wir den Vorname und den Nachname jeweils in einer Variable speichern, weil wir ihn bei einer Weiterprogrammierung der Webseite eventuell mehrfach verwenden könnten. Wir definieren beide folgendermaßen:

$vorname = $_POST[„vorname“];
$nachname = $_POST[„nachname“];


Wenn wir nun unsere localhost Seite neuladen, stellen wir fest, dass wir zwei Fehlermeldung bekommen. Das liegt daran, dass wir unsere Variablen \$vorname und \$nachname mit Informationen befüllen wollen, die die Webseite noch gar nicht erhalten hat.
Um einen solchen Fehler zu umgehen, verwenden wir ein simples If-Statement. In PHP gibt es viele verschiedene Funktionen, die wir ohne weiteres Vorwissen anwenden können. Die Funktion isset() prüft, ob eine Variable existiert. Wir verwenden also folgenden Code:

if (isset($_POST["vorname"]) && isset($_POST["nachname"])) {
        $vorname = $_POST["vorname"];
        $nachname = $_POST["nachname"];
}


Wir überprüfen damit also, ob \$_POST[„vorname“] und \$_POST[„nachname“] überhaupt existieren, bevor wir unsere neuen Variablen mit den Inhalten dieser befüllen. Wenn wir die Datei nun speichern und unsere localhost Seite neuladen, wird kein Fehler mehr ausgegeben.

Da wir unseren Fehler behoben haben, können wir nun auch beginnen einen Text auszugeben, sobald der Nutzer einen Vor- und Nachnamen angegeben hat.
Wie bereits gelernt, geben wir mit dem echo-Befehl einen Text aus.
Nun können wir also in unseren bereits geschriebenen If-Block die Rückgabe mit folgendem Code einbinden:

echo "Guten Tag "  . $vorname . "! Dein voller Name lautet: " . $nachname . ", " . $vorname;

Mit diesen wenigen Zeilen von HTML und PHP können wir also ein Formular erstellen.
Durch die verschiedenen input-Typen, die wir in HTML verwenden können, wäre es beispielsweise auch möglich eine Altersabfrage einzubinden, um herauszufinden, ob eine Person volljährig ist. Hierfür verwendet ihr den input-Typ „number“. Mit einem weiteren If-Block könnt ihr dann in PHP prüfen, ob eine Person älter als 18 ist oder nicht.
Bei weiteren Fragen könnt ihr euch auch an euren Lehrer wenden.

  • /var/www/infowiki/data/pages/q2/php_formulare.txt
  • Zuletzt geändert: 2020/02/09 21:30
  • von martinlandsiedel