MezData-Logo

Formulare

de.selfhtml.org/html/formulare/index.htm Mindmap: [Web-Formular.svg] [Web-Formular.mm]

Erklärtes Beispiel

<form action="antwort.php">
  <input name="Vorname" type="text" value="Ein Versuch">
  <input type="submit" value="Absenden">
</form>

Klickt man auf "Absenden" wird folgende Anforderung abgesand: "antwort.php?Vorname=Ein+Versuch"
Dadurch wird auf dem Server das PHP-Script getantwort.php aufgerufen. Dieses erzeugt als Anwort:

<h2>Antwortseite zur Get-Anfrage</h2>
<p><?php
 foreach($_GET as $k => $v)
 print('<b>Feldname: </b>' . $k . ', <b>Inhalt: </b>' . $v . "<br/>\n");
?></p>

Form-Attribute

Formulare werden als Web-Front-End von Server Applikationen verwendet. D.h. das Human Interface kann mit einem simplen Browser realisiert werden. Grundprinzip: Eine Web-Site enthält eine Eingabe-Maske, eine Ansammlung von Eingabefeldern. Die eingegebene Informantion wird an den Server übermittelt und verarbeitet, dazu verwendet man das Prinzip der Name-Wert-Paare, ein Eingabe Feld o.ä. hat einen Namen und diesem Namen wird ein Wert zugeordnet.

action

Hier wird die URL angegeben, die das Formular verarbeiten soll. Beispiele:

action="http://de.selfhtml.org/cgi-bin/comments.pl" cgi-bin ist das Verzeichnis in dem sich die Programme, Skripte des "Common Gateway Interface" befinden um die Formular-Antworten zu verarbeiten.

action="antwort.php" Hier wird die Verarbeitung durch den PHP-Interpreter vorgenommen. Das antwort.php-Skript wird mit den Eingaben aus dem Formular verarbeitet.

method (optional, wenn es fehlt wird get-Methode angenommen)

Gibt an, welche Übertragungsmethode verwendet wird. In dem Beispiel oben wird die get-Methode verwendet.

method ="get" Die Parameter (Name-Wort-Paare) werden an den Ziel-URL angehängt. Ein verarbeitendes Programm bzw. Skript würde die Werte als Parameter erhalten. Get ist simpel schnell aber unsicher und nicht für lange Formulare geeignet.

method="post" erlaubt Verschlüsselung der Parameter, ein C-Programm in der cgi-bin würde die Parameter via stdin Schnittstelle erhalten.

<form action="antwort.php" method="post">
  <input name="Vorname" type="text" value="Ein Versuch">
  <input type="submit" value="Absenden">
</form>
<h2>Post-Antwort, wenn vorhanden</h2>
<p><?php
 foreach($_POST as $k => $v)
 print('<b>Feldname: </b>' . $k . ', <b>Inhalt: </b>' . $v . "<br/>\n");
?></p>

target (optional)

Erlaubt die Angabe des Zielfensters für die Serverantwort. Siehe a-Tag und Frames usw..

enctype (optional, wenn es fehlt wird "application/x-www-form-urlencoded" angenommen)

Die Daten werden vor dem Absenden von Browser codiert um ein Verstümmeln beim Übertragen zu verhindern, z.B. werden Leerzeichen durch Pluszeichen '+' ersetzt.

Input

type= Beispiel Quelltext
button
<input type="button" name="buttonName" value="Knopf">
checkbox
<input type="checkbox" name="checkboxName" value="checkboxValue">
file
<input type="file" name="fileGetterName" size="16">
hidden
<input type="hidden" name="hiddenName" value="hiddenValue">
image übermittelt die x-y Position auf dem Bild
<input type="image" src="../../graph-animated/AquaBattery.gif" alt="Energie">
password
<input type="password" name="pswdfieldName">
radio hugoadam
<input type="radio" name="radiogroup" value="hugo">
reset
<input type="reset">
submit
<input type="submit" name="submitButtonName">
text
<input type="text" name="textfieldName" size="24">

USW...

SternSternSternFrageWozu werden Web-Formulare verwendet? Sie dienen als Human Interface zur Eingabe von Daten bzw. Steuerung von Applikationen.

SternSternSternSternFrageErklären Sie den Unterschied zwischen "get" und "post". Bei get werden die Daten in der URL angehängt, sind somit sichtbar und die Menge ist begrenzt, das aufgerufene Programm erhält die Daten in als Parameter. Bei post werden die Daten dem Programm so zur Verfügung gestellt als kämen sie von dem Standart Eingabe Kanal.

5 PunkteFrageWas bedeutet CGI? Nennen Sie 4 Möglichkeiten zur Realisierung. Common Gateway Interface, C-Programm, Perl-Skript, PHP, Shell-Skript, Java-Server-Pages, ASP usw..

SternFrageWelche Formular-Methode wird verwendet, wenn man das "method"-Attribut weglässt? Die get-Methode.

 

Aufgabe am RechnerErstellen Sie eine Web-Site für das Netz-Cafe Halli Galli die als Front-End für ein Bestell-System dient.

Hinweis: Beim Klicken auf "Bestellen" wird folgendes zum Server übertragen:

http://mezmedia.de/webpub/04-11-14_formulare/antwort.php?getraenk=cafe&extramilch=true&extrazucker=true&submitButtonName=Bestellen

Link zur HTML-Lösung...

Link zur Java-Lösung