FEN Startseite > ~xx502 > Forms > Lektion03
Web Formulare
Kapitel 3 - CGI-Formular
Um sicherzustellen, dass die eingegebenen Formulardaten weitgehend unabhängig vom Browser und v.a. unabhängig von einem Mailprogramm übermittelt werden, kann man die Daten an einen WWW-Server schicken. Auf diesem Server-Rechner muss ein Programm installiert sein, das die Daten verarbeitet.
Die Standard-Programmierschnittstelle auf einem WWW-Server nennt man CGI (Common Gateway Interface). Der Provider, bei dem Du Deine Webseiten ablegst, muß den Zugriff auf diese Schnittstelle erlauben oder er stellt bereits ein fertiges Programm zur Verfügung. Alternativ kannst Du aber auch ein CGI-Programm auf einem beliebigen anderen WWW-Server im Internet ansprechen.
Im einfachsten Fall übernimmt das CGI-Programm die Weiterleitung der Daten per Mail, Du kannst aber auch z.B. die Daten vor der Übermittlung prüfen. Ein CGI-Programm ist immer dann zwingend notwendig, wenn Daten auf dem Server gespeichert oder vom Server abgerufen werden sollen. Das bekannteste Beispiel ist die Suche im Internet: Senden einer Suchanfrage und Rückmeldung der Fundstellen aus einer Datenbank des Servers.
Die meist verwendete Programmiersprache für CGI-Programme ist Perl. Frage bitte Deinen Provider ob er Perl unterstützt, ob es vielleicht bereits ein geeignetes, getestetes Programm auf dem Server gibt und was zu beachten ist.
CGI-Formular - Definition
An erster Stelle steht die Programmierung (darauf gehe ich in diesem Kurs nicht näher ein) oder Auswahl eines geeigneten CGI-Programms. Für unsere HTML-Seite müssen wir wissen, wo das CGI-Programm auf dem WWW-Server gespeichert ist und diesen Pfad im FORM-Tag als action verwenden.
<form method="post" action="/cgi-bin/mail.pl"> </form> |
Üblicherweise liegen ausführbare CGI-Programme im Verzeichnis cgi-bin auf dem WWW-Server. Im Beispiel habe ich das Programm mail.pl angesprochen. Die Endung pl weist dabei auf ein Perl-Skript hin. Bei FEN heißt das Programm mail.cgi .
Die Kurzbeschreibung zum nur für FEN-Mitglieder nutzbaren Formmail-CGI-Programm, liefert auch grundsätzliche Hinweise, welche Möglichkeiten Formmailer bieten.
Für Tests steht das Skript http://www.fen-net.de/cgi-bin/formulartest.cgi zur Verfügung. Formulardaten, die an dieses Skript gesendet werden, zeigt der Browser unverändert als Auflistung auf einer Webseite an.
Für die meisten Skripte ist es nötig im Hintergrund Daten übermittelt zu bekommen, wie z.B die Mailadresse, an die die eingegebenen Formulardaten geschickt werden sollen oder die URL einer WWW-Seite, die als Reaktion auf die Eingabe angezeigt werden soll.
Die dafür verwendetet "versteckten Eingabefelder" werde ich in einem weiteren Kapitel erklären An dieser Stelle zeige ich im Vorgriff ein Beispiel:
<input type="hidden" name="mail" value="vorname.nachname@fen-net.de"> <input type="hidden" name="return-url" value="http://www.fen-net.de/schulung/danke.html"> |
Wenn Dein Provider kein passendes CGI-Programm zur Verfügung stellt und du auch keines dort speichern darfst, dann gibt es immer noch Möglichkeiten:
Verwende ein Skript auf einem freien CGI-Server, z.B findest du ein einfaches Mailskript auf einem der folgenden Server:
http://cgi.resourceindex.com/Remotely_Hosted/Form_Processing/
http://www.sbrady.com/hotsource/cgi/index.html#ffp
oder weitere Skripte:
http://cgi.resourceindex.com/Programs_and_Scripts/
http://www.artsackett.com/freebies/asform/
Zusammenfassend kann ich sagen, dass das mailto-Formular einfacher zu erstellen ist, aber erst mit CGI viele Dinge möglich werden und die Funktionen fast immer - unabhängig vom Mailprogramm oder Browser - funktionieren.
![Zurück](back.gif)
![Zum Inhaltsverzeichnis](home.gif)
![Weiter](weiter.gif)