SELFHTML: HTML/XHTML / Formulare / Formulare verarbeiten
Author: Redaktion SELFHTML, selfhtml81@selfhtml.org
Description: Wie Sie HTML-Formulare als E-Mail oder mit CGI-Scripts verarbeiten können und was es - besonders bei mailto-Formularen - zu beachten gibt.
Keywords: SELFHTML, HTML, XHTML, Formulare, Formularverarbeitund, E-Mail, CGI-Scripts, mailto-Formulare
Date: 2005-08-22T21:21:39+02:00

| # Formulare verarbeiten
| Formulare als E-Mail Formulare und CGI

## Formulare als E-Mail

Viele Anwender, die von großen Discount-Providern Speicherplatz für eigene Web-Seiten erhalten, haben keine Möglichkeit, eigene CGI-Scripts zur Datenverarbeitung auf dem Server-Rechner einzusetzen. Dazu kommt, dass viele Homepage-Besitzer sich nicht in der Lage fühlen, sich in Programmiersprachen, fremde Betriebssystemumgebungen, Umgebungsvariablen und Datenübertragungsprotokolle einzuarbeiten. Dennoch möchten viele Seitenanbieter die Möglichkeit nutzen, mit Hilfe von HTML-Formularen gezielte und einheitlich strukturierte Daten von Besuchern ihrer Web-Seiten einzuholen. Zu diesem Zweck besteht die Möglichkeit, sich ausgefüllte Formulare als E-Mail zuschicken zu lassen.

Ein Problem stellen bei dieser Lösung jedoch Web-Browser dar, die nicht in der Lage sind, Formulare mit `action="mailto:..."` zu versenden. Dazu gehören Standalone-Browser, die kein eigenes E-Mail-Modul besitzen und darauf angewiesen sind, ein anderes E-Mail-Programm auf dem Rechner des Anwenders zu starten. Dabei klappt aber nicht unbedingt immer die Kommunikation zwischen Browser und E-Mail-Programm so, dass die Formulardaten übergeben und vom E-Mail-Programm anstandslos versendet werden. Bei vielen Anwendern tritt beispielsweise das Problem auf, dass das E-Mail-Programm einfach ein leeres E-Mail-Fenster öffnet, statt direkt die vom Browser übergebenen Formulardaten zu versenden. Gegen diese Probleme können Sie als Anbieter von Web-Seiten nichts unternehmen. Es ist also ein Glücksspiel, ob der Formularversand via E-Mail bei Ihren Seitenbesuchern klappt oder nicht. Um das Problem zu umgehen, können Sie einen öffentlichen CGI-Service für so genannte Form-Mailer in Anspruch nehmen. Dort werden die Formulardaten von einem CGI-Programm verarbeitet und Ihnen dann als E-Mail zugeschickt. Im Link-Verzeichnis des Online-Angebots von SELFHTML aktuell finden Sie auf der Seite Homepage-Services Verweise zu Anbietern solcher Form-Mailer.

Ein anderes Problem bei mailto-Formularen besteht darin, dass die Formulardaten beim Abschicken per Voreinstellung nach einem bestimmten MIME-Typ kodiert werden, dem MIME-Typ `application/x-www-form-urlencoded`. Dabei werden alle Leerzeichen, verschiedene Sonderzeichen und Umlaute durch spezielle Zeichenfolgen ersetzt. So lautet beispielsweise der Satz `Danke für die Hilfe!` nach der Umwandlung: `Danke+f%FCr+die+Hilfe%21`. Für Menschen ist das ziemlich ungenießbarer Lesestoff. Um die Kodierung zu verhindern, können Sie im einleitenden `<form>`-Tag zwar die Angabe `enctype="text/plain"` angeben. Von Anwendern, deren Web-Browser diese Angabe jedoch nicht interpretiert, werden Sie dennoch kodierte Formulardaten erhalten.

Benutzen Sie die Möglichkeit, sich Formulare direkt per E-Mail zuschicken zu lassen, also nur im Notfall und nur dann, wenn es nicht um wirklich wichtige Dinge geht. In allen anderen Fällen ist auf jeden Fall eine server-seitige Datenverarbeitung über ein CGI-Script oder vergleichbares Script vorzuziehen.

## Formulare und CGI

Viele Anwendungsfälle für Formulare in HTML benötigen eine Datenverarbeitung auf dem Server-Rechner im Web. Wenn Sie beispielsweise Ihr gesamtes Web-Projekt nach einem Begriff durchsuchbar machen wollen, können Sie dem Anwender ein Formular anbieten, in dem er den Suchbegriff eingeben kann. Nach dem Abschicken des Formulars muss ein Script oder Programm auf dem Server-Rechner alle Dateien des Projekts nach dem gewünschten Begriff oder einen zuvor erzeugten Index oder eine Datenbank absuchen und eine dynamische HTML-Datei erzeugen, in der Verweise auf alle Seiten enthalten sind, die den Suchbegriff enthalten.

Für solche Fälle, aber auch für Anwendungsfälle wie automatische Gästebücher, Diskussionsforen, elektronische Einkaufskörbe usw. benötigen Sie ein Script oder Programm auf dem Server-Rechner, das die in einem Formular eingegebenen oder ausgewählten Daten sofort verarbeitet und dem Anwender echte Interaktion bietet.

Die Standard-Programmierschnittstelle auf Web-Servern hierfür ist CGI (Common Gateway Interface). Manche Web-Server haben - je nach installierter HTTP-Software - auch noch andere Programmierschnittstellen. Der Provider, bei dem Sie Ihre Web-Seiten speichern, muss Ihnen Zugriff auf diese Programmierschnittstelle erlauben, damit Sie solche Anwendungen selbst realisieren können. Viele Discount-Provider erlauben ihren Mitgliedern jedoch keinen solchen Zugriff.

Die meist verwendete Programmiersprache für CGI-Scripts ist Perl. Fragen Sie jedoch vor dem Programmieren eines eigenen CGI-Scripts Ihren Provider, welche Art von Programmen auf dem Server ausführbar sind. Wenn Sie in Perl programmieren wollen, fragen Sie den Provider, ob der Server über einen Perl-Interpreter verfügt, und wo genau der Interpreter auf dem Server liegt. In diesem Dokument finden Sie eine ausführliche Dokumentation zu Perl.

| Framesets und Frames definieren
| Formulare formatieren mit CSS

© 2007 Impressum