HTML-Dateien selbst erstellen
Formulare auswerten und weiterverarbeiten
Ausgefüllte Formulare als Email zuschicken lassen
Ausgefüllte Formulare mit CGI-Scripts verarbeiten
Ausgefüllte Formulare als Email zuschicken lassen
Wenn Sie nicht allzugroße Mengen an ausgefüllten Formularen erwarten, ist dies der einfachste Weg, um an die Formulardaten zu kommen. Wenn Ihnen keine Möglichkeit zur Verfügung steht, CGI zu nutzen (z.B. weil Ihr Provider das nicht vorsieht), bleibt Ihnen gar keine andere Wahl, als sich ausgefüllte Formulare per Email zuschicken zu lassen.
Zusammenhängendes Beispiel
Angenommen, Sie stellen folgendes Bestellformular im WWW zur Verfügung:
<form action="mailto:literatur.zirkel@neuland.de" method="post">
<h3>Reimer Eilers:</h3>
<input type=checkbox name="RE_Scoobie_Doobie_Do" value="X"> Scoobie Doobie Do (nur 8,- DM)
<h3>Manfred Goldbeck:</h3>
<input type=checkbox name="MG_Brummels_Abenteuer" value="X"> Brummels Abenteuer (nur 7,- DM)<br>
<input type=checkbox name="MG_Inlandsgeschichten" value="X"> Inlandsgeschichten (nur 7,- DM)<br>
<input type=checkbox name="MG_Maexchens_Erzaehlungen" value="X"> Mäxchens Erzählungen (nur 4,- DM)
<h3>Charlotte Richter-Peill:</h3>
<input type=checkbox name="RP_Zwischenfall" value="X"> Zwischenfall (nur 7,- DM)
<p>
Ihr Name: <input name="Besteller_Name" size=20>
<p>
<input type=submit value="Bestellung abschicken">
</form>
Weiter angenommen, ein Anwender füllt dieses Formular aus wie im folgenden Bild:

Wenn Sie sich dieses Formular als Email zuschicken lassen, hat die Email folgendes Aussehen (Beispiel):
Sender: ...
Received: ...
Message-ID: ...
Date: ...
From: ...
X-Mailer: ...
MIME-Version: ...
To: ...
Subject: ...
Content-type: ...
Content-length: ...
MG_Brummels_Abenteuer=X&MG_Maexchens_Erzaehlungen=X&RP_Zwischenfall=X
&Besteller_Name=Birgit+Simson
Im eigentlichen Text der Email (im Beispiel nur die letzten beiden Zeilen) stehen die
übermittelten Daten. Die Daten der einzelnen Elemente des Formulars sind durch ein
kaufmännisches & voneinander getrennt. Die Namen (wie
im Beispiel etwa MG_Brummels_Abenteuer) sind diejenigen Feldnamen, die
Sie bei der Definition der Formularfelder mit der Angabe name= vergeben
haben. Die Angaben hinter den Istgleichzeichen sind die Werte bzw. Daten. Bei
Check- und Radiobuttons werden nur die vom Anwender aktivierten Buttons in der
Email übertragen und enthalten die Werte, die Sie beim Formular mit der
Angabe value= definiert haben (im obigen Beispiel ist das einfach ein
großes X). Bei Eingabe- und Textfeldern erhalten Sie die Daten, die der
Anwender eingegeben hat (im obigen Beispiel etwa "Birgit+Simson").
Leerzeichen werden dabei in Pluszeichen umgewandelt. Sonderzeichen, z.B. deutsche
Umlaute, werden in Hexadezimalschreibweise umgewandelt.
Mit Hilfe eines selbst geschriebenen Filter-Programms können Sie diese Zeilen z.B.
in eine kommabegrenzte Datei schreiben, die Sie dann in eine Datenbank einlesen
können.
HTML-Dateien selbst erstellen
Formulare auswerten und weiterverarbeiten
Ausgefüllte Formulare mit CGI-Scripts verarbeiten
Um ausgefüllte Formulare mit CGI-Scripts verarbeiten zu können, benötigen Sie eine CGI-Schnittstelle auf dem Server-Rechner, wo Sie Ihre WWW-Seiten anbieten. Auf Unix-Rechnern (die im WWW die Regel sind) gibt es dafür ein eigenes Verzeichnis, normalerweise mit dem Namen cgi-bin. In diesem Verzeichnis können Sie CGI-Scripts ablegen.
CGI und das Client-Server-Modell
Common Gateway Interface (CGI) ist ein Unix-Standard für Client-Server-Kommunikation.
Ein Server ist ein Rechner, der Daten (oder Software) zur Verfügung stellt. Ein
Client ist ein Rechner, der die Daten des Server-Rechners abruft bzw. Software des
Servers aufruft. Im WWW stellt ein WWW-Server z.B. HTML-Dateien zur Verfügung,
die der Anwender auf seinem Heim-Rechner (Client) mit Hilfe eines WWW-Browsers aufrufen
und am Bildschirm anzeigen lassen kann. Außerdem kann der Server-Rechner Daten
verarbeiten, die er vom Client erhält, ohne daß dem Client bekannt ist, wo
und wie genau die Daten gespeichert werden. So ist es im WWW z.B. denkbar, daß
ein Anwender (Client) ein Formular auf einer WWW-Seite ausfüllt und abschickt. Die
dadurch an den Server-Rechner übertragenen Daten werden dann auf dem Server-Rechner
beispielsweise in eine Datenbank eingespeist. Oder der Anwender (Client) formuliert in
einem Formular eine Suche in einer Datenbank. Die an den Server-Rechner
übertragenen Formulardaten werden in eine interne Datenbankabfrage umgesetzt. Die
Datenbank erzeugt daraus einen Abfrage-Report mit Suchergebnissen. Aus diesem
Abfrage-Report generiert der Server automatisch eine HTML-Datei, die er an den
Anwender (Client) überträgt. Die folgende Abbildung verdeutlicht diesen
typischen Kommunikationsverlauf:
CGI-Scripts
CGI-Scripts haben also folgende typische Aufgaben:
- CGI-Scripts müssen Anfragen des Clients "verstehen". Wenn ein
Anwender in einer WWW-Seite beispielsweise ein Formular ausfüllt und abschickt,
muß das aufgerufene CGI-Script aus dem ankommenden Datenstrom die Daten
herausfiltern, die es benötigt, um daraus z.B. eine Datenbankabfrage zu
formulieren. Der Datenstrom hat übrigens das gleiche Format wie bei
Email-übermittelten Formulardaten.
- CGI-Scripts müssen das Anfrageformat des Clients in ein Format zur
Datenabfrage übersetzen. Der Standard für Datenbankabfragen ist SQL
(Structured Query Language). Dies setzt voraus, daß die Datenbank selbst
SQL-fähig ist (unter Unix z.B. Informix, unter Windows z.B. MS Access).
- CGI-Scripts müssen Berichte, die eine Datenbank aufgrund einer Anfrage erzeugt
hat, in eine für den Client verständliche Form umsetzen. Im WWW sollte das
CGI-Programm die Antwortdaten in Form einer automatisch generierten HTML-Datei zur
Verfügung stellen.
CGI-Scripts müssen ausführbare Programme sein. Es gibt keine Vorschriften dafür, in welcher Programmier- oder Scriptsprache CGI-Scripts geschrieben sind. Häufig verwendet werden:
- C/C++
- Fortran
- PERL
- TCL
- Unix Shell-Sprache
- Visual Basic
- AppleScript
Die Scripts müssen entweder direkt ausführbare Programme (d.h. compiliert und
gelinkt) sein, oder es muß ein Interpreter vorhanden sein, der den Quellcode
der Scripts ausführt. Wer CGI-Scripts programmiert, muß gute bis sehr gute
Kenntnisse in den Bereichen String-Verarbeitung, Datei-Operationen, SQL und dem
WWW-Protokoll HTTP (Hypertext Transfer Protokoll) besitzen.
Information über CGI
Im WWW finden Sie Informationen über CGI und Sammlungen frei verfügbarer CGI-Programme in verschiedenen Programmiersprachen.
The Common Gateway Interface (CGI) 
CGI Tutorial 
HTML-based Interfaces 
CGI Form Handling in Perl 
A CGI Programmer's Reference 
Die CGI Spezifikation 
HTML-Dateien selbst erstellen
Formulare auswerten und weiterverarbeiten