PHP 4.3

3.2 Formulare - Grundlagen

Wie am Anfang des Kapitels bereits erwähnt, ist es mit PHP ohne große Probleme möglich, Daten aus Formularen zu übertragen und weiterzuverarbeiten. PHP versteht alle standardisierten Formularelemente, kann also neben Texteingabefeldern auch Auswahllisten, Radio-Buttons und Checkboxen verarbeiten. Für den Upload von Dateien gibt es ein spezielles Eingabefeld, welches wir später genauer erläutern werden.

Doch zuerst möchten wir Ihnen zeigen, wie Sie die Inhalte einfacher Eingabefelder übertragen und auswerten können.

Im nachfolgenden Beispiel sehen Sie ein erstes Formular, das im Moment noch keinerlei PHP-Funktionen beinhaltet. Es soll Ihnen lediglich die einzelnen Elemente näher bringen. Der Einfachheit halber verzichten wir in unserem ersten Beispiel auf Auswahlfelder oder ähnliches und beschränken uns lediglich auf zwei einfache Eingabefelder.

Einkaufsformular:
<html>

 <head>
  <title>Mein erstes Formular</title>
 </head>

 <body>

  Heute kosten alle Artikel 5,99 Euro

  <form action="kaufen.php" method="get">
   <input type="Hidden" name="preis" value="5.99">
   Artikel <input type="Text" name="artikel">
   Menge <input type="Text" name="menge">
   <input type="Submit" name="submit" value="Kaufen">
  </form>

  </body>

</html>

Wenn Sie das oben gezeigte Beispiel ausprobieren, können Sie noch einmal nachvollziehen, wie mittels der get-Methode das Schlüssel/Wert-Paar an den URL angehängt wird. Geben Sie zum Testen einfach einmal einige Sonderzeichen wie "ß", "§" oder auch nur "ö" ein. In diesem Fall übernimmt es das Formular für Sie, die Sonderzeichen entsprechend zu kodieren. Wie im vorherigen Beispiel empfiehlt es sich, auch in diesem Beispiel Formular und Zielskript in der gleichen Datei unterzubringen (kaufen.php).

Betrachten wir nun die einzelnen Formularzeilen:

<input type="Hidden" name="preis" value="5.99">

Beim Formularfeldtyp hidden handelt es sich um ein verstecktes input-Feld, das für den Betrachter nicht sichtbar ist. Dennoch kann in ihm eine Variable gespeichert und auch übergeben werden. Genau darin besteht die Aufgabe eines versteckten Feldes, nämlich im Hintergrund verborgen Daten zu übergeben. Allerdings bedeutet dies nicht, dass diese Daten geschützt oder gar sicher sind. Daten, die als URL-Parameter übergeben werden, sollten im Zweifel lieber überprüft werden.

Aus dem obigen Beispiel wird also der Feldname preis automatisch als Variable umgewandelt, im Zielskript initialisiert und somit zugänglich gemacht. Der Wert, der dieser Variablen übergeben werden soll, wird im Attribut value des Input-Feldes angegeben.

Die beiden darauffolgenden Formularzeilen lauten:

Artikel <input type="Text" name="artikel">
Menge <input type="Text" name="menge">

Diese beiden Zeilen stellen die eigentlichen Eingabefelder dar. Der Typ des Eingabefeldes wird mit input type="Text" vorgegeben, was ein Texteingabefeld erstellt.

Es fällt auf, dass bei den beiden Feldern zwar ein Name vorgegeben ist, den wir beim Auslesen der Information brauchen werden, der Wert (value) ist aber noch nicht vorgegeben. Dieser "entsteht" praktisch erst bei einer Eingabe in das anfangs leere Texteingabefeld. Wenn nichts eingegeben wird, kann auch nur ein leerer Wert übergeben werden, die Variable erhält dann den Wert "".

Wenn man einem Texteingabefeld mittels value einen Wert vorgibt, steht dieser Wert als Vorgabe in dem Textfeld. Bei einigen Eingabefeldern kann das durchaus Sinn machen. Denken Sie z.B. an das aktuelle Datum bei der Online-Abfrage eines Nahverkehrsfahrplans. Bei Feldern, in denen z.B. der Kundenname oder ähnliches eingegeben werden soll, ist die Vorgabe eines Namens aber eher sinnlos, weil die Wahrscheinlichkeit, den richtigen Namen vorzugeben, bei der Vielzahl der unterschiedlichen Namen doch sehr gering ist.

Betrachten wir nun die letzte Zeile des Formulars:

<input type="Submit" name="submit" value="Kaufen">

Dieses Feld unterscheidet sich vor allem durch den Typ Submit, der den Button zum Absenden des Formulars erzeugt. Nur ein Button dieses Typs hat die Fähigkeit, dem Browser die Anweisung zum Abschicken des Formularinhalts mitzuteilen.

Kommentare (0)

Ihr Kommentar

Name