SELFPHP

SELFPHP-Druckversion
Original Adresse dieser Seite:
http://www.selfphp.de/praxisbuch/praxisbuchseite.php?site=184&group=32&page=2
© 2001-2017 E-Mail SELFPHP OHG, info@selfphp.de
© 2005-2017 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de


Ermitteln von Formulardaten


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.{PSP}
ElementAttributeBedeutung
textsize,value,name,maxlengthErzeugt ein einzeiliges Eingabetextfeld.
radiovalue,checked,nameErzeugt 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.
checkboxvalue,checked,nameErzeugt 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.
passwordsize,value,nameBewirkt, dass die eingegebenen Zeichen als Sternchen im Eingabefeld erscheinen.
hiddenvalue,nameErzeugt ein unsichtbares Feld, welches dazu dient, versteckte Statusinformationen zu übermitteln.
buttonvalue,nameErzeugt eine Schaltfläche.
imagesrc,name,width,height,altErzeugt ein Bild, welches beispielsweise eine Schaltfläche ersetzt.
filename,size,maxlength,acceptErzeugt ein Eingabefeld samt Schaltfläche zum Übertragen von Dateien.
submitname,valueErzeugt einen Sendeschalter. Diese Schaltfläche überträgt beim Anklicken den Inhalt des Formulars an das im <form>-Tag mit dem Attribut action angegebene Skript.
resetname,valueErzeugt eine Schaltfläche zum Zurücksetzen der Eingaben innerhalb der Formularelemente.


Die Attribute haben folgende Bedeutung:

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.