xwolf.de|com

Menü

Inhalt dieser Site

Ansicht

Individuelle Benutzerkonfiguration für die Site.

Druckansicht Startseite Suchen

A A A A

AllForm

Dieses Skript nimmt die Eingaben eines Formulars entgegen und verarbeitet sie bzw. sendet die Eingaben per EMail weiter und gibt danach eine Bestätigung aus.

Source Code

Perl Sourcecode
allform.pl Das Skript allform.pl, Version 2.6
web.pm Das Modul web
 

Wirkungsweise

Die Wirkungsweise wird anhand eines Beispiel-Formulars deutlich. Die Einstellung ist so, daß die Daten in einer Datei gespeichert werden und der Gast nach Eingabe der Daten sofort auf die Indexseite dieses Verzeichnisses weitergeleitet wird:

Welchen Browser benutzen Sie?
Netscape Communicator 4.7
Netscape Communicator 4.08
Netscape Navigator
MS Internet Explorer 5.x
MS Internet Explorer
AOL Explorer
Anderer Browser

Glauben Sie, die Erde wurde in der Vergangenheit von Ausserirdischen Lebensformen besucht?

ja
nein
weiss nicht

(Die eingegebenen Daten wurden hierin gespeichert: allform_umfrage.txt .)

Aufruf

Um das Skript zu nutzen, muss man in seinem Formular nur in einem versteckten (hidden) Feld den Schluessel zu einem Dateinamen anzugeben, in dem die Ergebnisse gespeichert werden sollen. Alternativ kann auch eine EMail-Addresse angegeben werden.
Dateiname und/oder E-Mailadresse müssen natürliche eine gültige Syntax haben und können aus Gründen des Systemschutzes keine Sonderzeichen enthalten (diese wirden gelöscht!).

Im ACTION-Tag des Formulars, muss folgendes stehen:
<form action="http://www.../cgi-bin/allform.pl" method="post">
Danach sollte ein Input-Feld fuer den Dateinamen versteckt werden, der z.B. so aussieht:
<input type="hidden" name="filename" value="1">
Falls man EMail und Filename gleichzeitig angibt, wird bei jedem neuen Eintrag in die Datei ausserdem eine Bestätigung an die genannte EMail gesandt. Die EMail wird ebenfalls versteckt mit:
<input type="hidden" name="mailto" value="unrzc9@rrze.uni-erlangen.de">
Falls nur eine EMail angegeben wurde, werden die Daten an die Addresse gesandt.

Installation

Kopieren Sie die Datei allform.pl in Ihr CGI-BIN-Verzeichnis. Setzen Sie die Ausführungsrechte mittels CHMOD. Z.B.: chmod 755 allform.pl.
Ändern Sie im Programm folgende Zeilen:
Zeile 1: #!/local/bin/perl5 geben Sie hier Ihren eigenen Pfad zu Perl ein, falls er von diesem abweicht.
Zeile 26: use lib './'; Sollten Sie das Modul web.pm in Ihrem Perl Library Verzeichnis installiert haben, können Sie diese Zeile auskommentieren oder löschen. Ansonsten geben Sie hier den Pfad zu der Datei web.pm an.
Zeile 29: $mailprog = '/usr/lib/sendmail'; Geben Sie hier Ihren persönlichen Pfad zum Programm sendmail an.
Zeile 31: $webmastermail = "webmaster\@xwolf.com"; Diese Adresse wird nur dann angegeben, wenn daß Skript falsche Daten erhält. Dann verweist es auf diesen Fehler und empfielt, sich mit der Webmaster-Adresse in Verbindung zu setzen.
Zeile 34: $webgruppe = "www"; Diese Angabe dient lediglich zur Information, falls ein Fehler aufgetreten ist. Sie beinhaltet die Angabe, zu welcher Benutzer-Gruppe der Webserver gehört.
Zeile 38: $webadr = "webmaster\@xwolf.com"; Wenn das Skript E-Mails verschickt, taucht diese E-Mailadresse als Absender auf.
Zeile 41: $userlog = "allform.log"; In dieser Datei wird ein Protokoll geführt, wer auf die Umfrage zugreift. Es wird so verhindert, daß jemand mehrmals ein Formular ausfüllt.
Zeile 44: $homeserver = "cgi.xwolf.de"; Ist diese Variable angegeben, wird verhindert, daß das Formular auf einer anderen Domain als die angegebene ausgefüllt wird.
Zeile 47: $LOGSIZE = 20; Hier wird festgelegt, wieviele Einträge die Datei $userlog haben darf.
Zeile 50-51: my %ALLOW_SUBMITFILES = ("1", "/tmp/submit1.tmp", "2", "/tmp/submit2.tmp"); Hier wird festgeschrieben, welche Dateien zum Speichern der Ergebnisse genutzt werden. Als Schlüsselname im HTML-Formular darf nur eine der in der ersten Spalte angegebenen Zeichen genutzt werden. Mit diesen ist dann der Dateiname in der zweiten Zeile verknuepft.
Bitte behalten Sie diese Syntax bei.

Bemerkung

Falls der Dateiname vergessen wurde, oder die Rechte nicht stimmen etc, dann meldet das Skript den Fehler. Falls jemand mehrmals versucht das Formular abzusenden, wird dies abgefangen. (Es müssen mindestens 5 Sekunden vergehen) Zusaetzlich kann man entweder das Skript eine Bestätigung ausgeben lassen, wobei die eingegebenen Werte aufgeführt werden (außer den versteckten) oder aber es kann auf eine andere Homepage weiterleiten.
In diesem Fall gibt man ebenfalls versteckt eine URL an:
<input type="hidden" name="url" value="http://cgi.xwolf.de/cgi/">

Info

© 1996 - 2003 by xwolf