Die Daten eines Formulars innerhalb eines PHP-Skripts weiter zu verarbeiten, ist eine der grundlegenden Aufgaben vieler Webanwendungen.
HTML-Formulare
Mithilfe von HTML-Formularen sind Sie in der Lage, Daten vom Browser zum Server zu übermitteln. Ein Formular setzt sich aus dem <form>-Tag und den enthaltenen Formularelementen wie Textfeldern, Checkboxen, Auswahllisten etc. zusammen.
Achtung: Bei der Realisierung von HTML-Formularen sollten Sie darauf achten, dass die Formularelemente nur innerhalb des <form></form>-Containers existieren. Außerhalb werden sie von den meisten Browsern gar nicht erst angezeigt oder falsch dargestellt. Zusätzlich verlieren sie ihre Funktionalität.
Die wohl einfachste Form eines Formulars stellt sich wie folgt dar:
<html>
<head>
<title>Kontaktformular</title>
</head>
<body>
<form action="mailto:matthiask@atomicscript">
<p>
Betreff: <input type="text" name="Betreff" size="30">
</p>
<p>
E-Mail: <input type="text" name="email" size="30">
</p>
<p>
Kommentar: <input type="text" name="nachricht" size="30">
</p>
<p>
<input type="submit" name="Submit" value="Submit">
<input type="reset" name="Reset" value="Reset">
</p>
</form>
</body>
</html>
Das Formular ist in der Lage, eine E-Mail zu versenden. Dieser Vorgang läuft jedoch clientseitig ab. Voraussetzung ist, dass neben dem Browser auch ein E-Mail-Client zur Verfügung steht, welcher vom Browser gesteuert werden kann.
Sollte dies nicht gegeben sein, ist der Einsatz eines serverseitigen Skripts notwendig, welches unabhängig vom Browser E-Mails versenden kann. Hierfür ist innerhalb des Formulars lediglich eine Zeile anzupassen:
<form action="mail.php" method="post">
Wie Sie sehen, wird zum einen als auszuführender Befehl für den <form>-Tag keine lokale Anweisung mehr verwendet, sondern auf ein Skript verwiesen, welches sich auf dem Server befindet. Zum anderen wird explizit auf die zu verwendende Übertragungsmethode verwiesen. Im vorliegenden Fall handelt es sich um POST.
Einsatz von Formularelementen
Im vorherigen Beispiel haben Sie bereits zwei Formularelemente kennengelernt, es handelte sich um das Eingabetextfeld und die Schaltfläche. In HTML stehen Ihnen weit aus mehr Formularelemente zur Verfügung. Das wohl vielfältigste Tag innerhalb eines HTML-Formulars ist das <input>-Tag.
Bild 4.1: Übersicht der HTML-Formularelemente
Die folgenden Formularelemente sind Bestandteile des <input>-Tags. Ich habe sie in der folgenden Tabelle für Sie aufgelistet.
Element | Attribute | Bedeutung | text | size,value,name,maxlength | Erzeugt ein einzeiliges Eingabetextfeld. | radio | value,checked,name | Erzeugt eine Optionsschaltfläche. Im Gegensatz zu einer Checkbox kann lediglich eine Schaltfläche innerhalb einer Gruppe aktiviert werden. Die Radiobuttons werden zu einer Gruppe verknüpft, sobald sie denselben Namen besitzen, welcher mithilfe des name-Attributs festgelegt wird. | checkbox | value,checked,name | Erzeugt einen Auswahlkasten. Das Attribut value wird zum Server übertragen, sobald die Checkbox aktiviert wurde. Mithilfe des Attributs checked kann die Checkbox bereits beim Aufruf des Formulars aktiviert werden. Checkboxen ermöglichen auch bei Zugehörigkeit zur selben Gruppe eine Mehrfachauswahl. | password | size,value,name | Bewirkt, dass die eingegebenen Zeichen als Sternchen im Eingabefeld erscheinen. | hidden | value,name | Erzeugt ein unsichtbares Feld, welches dazu dient, versteckte Statusinformationen zu übermitteln. | button | value,name | Erzeugt eine Schaltfläche. | image | src,name,width,height,alt | Erzeugt ein Bild, welches beispielsweise eine Schaltfläche ersetzt. | file | name,size,maxlength,accept | Erzeugt ein Eingabefeld samt Schaltfläche zum Übertragen von Dateien. | submit | name,value | Erzeugt einen Sendeschalter. Diese Schaltfläche überträgt beim Anklicken den Inhalt des Formulars an das im <form>-Tag mit dem Attribut action angegebene Skript. | reset | name,value | Erzeugt eine Schaltfläche zum Zurücksetzen der Eingaben innerhalb der Formularelemente. |
Die Attribute haben folgende Bedeutung:
- name – Name, nach dem das Element im Skript identifiziert werden kann. Entspricht dem Variablennamen innerhalb von PHP-Skripts. Elemente, die kein Namensattribut besitzen, werden nicht übertragen.
- value – Vorbelegter Wert oder Beschriftung. Dieser Wert wird ebenfalls versendet. Entspricht dem Variableninhalt (Wert) innerhalb von PHP-Skripts.
- size – Legt die Feldgröße in Standardzeichen fest.
- checked – Aktiviert das jeweilige Element. Entspricht true (aktiv).
- src – Verweist auf den Ort des verknüpften Bildes.
- maxlength – Legt die Anzahl der Zeichen fest, die in einem Feld eingegeben werden können.
Hinweis: Bei der Verarbeitung des <input>-Tags sollten Sie darauf achten, dass die Variablen auch Anführungszeichen enthalten könnten, was wiederum das Ende des value-Attributs kennzeichnen würde. Um dies zu verhindern, sollte man sie mithilfe der Funktion htmlspecialchars() umwandeln lassen.
Zusätzlich stehen Ihnen noch zwei weitere Formularelemente zur Verfügung, welche es Ihnen beispielsweise ermöglichen, Auswahllisten, Sprungmenüs oder mehrzeilige Texteingaben zu erstellen.
- <select></select> – Dieses Element stellt eine Auswahlliste in Form eines Dropdown-Menüs dar. Jedes Element wird durch ein weiteres Tag, <option></option>, eingeleitet.
- <textarea></textarea> – Mit diesem Element werden mehrzeilige Textfeldeingaben möglich, da es im Unterschied zum <input>-Tag einen Anfangs- und einen Endtag besitzt.
|