
Formularinhalte auf dem Speicherplatz ablegen
1. Das untenstehende Script in das Verzeichnis /cgi-local
legen.
2. Aufruf über die HTML-Seite:
http://www.[Domain-Name]/cgi-local/[Scriptname]/[Pfad und Dateiname zur
Text-Datei]&[Pfad und Dateiname der Zieldatei]
[Domain-Name]: Ihr Domain-Name
[Scriptname]: Der Dateiname unter dem das Script gespeichert wurde
[Pfad und Dateiname zur Text-Datei]: Das ist eine Text-Datei im Stile
von CGIEMAIL, in der das Layout
mit den Variablen vorgegeben wird.
[Pfad und Dateiname der Zieldatei]: Hier werden
die eingegebenen Daten im ASCII-Format auf der Festplatte abgelegt und
angehängt. Die Umlaute werden nach 7 Bit übersetzt (Ä=Ae, etc.).
Es kann auch eine success-Seite eingerichtet werden (siehe CGIEMAIL).
ACHTUNG: das Wort "success" muß unbedingt kleingeschrieben sein.
#!/usr/bin/perl
#------------------------------------------------------------
# Umgebungsvariablen einlesen
#------------------------------------------------------------
#&Get_Cgi;
#-- Einlesen der Dateinamen
($ein,$aus) = split(/&/, $ENV{PATH_INFO});
&Get_Cgi;
#ersetzen der Variablen
if (open(ANTWORT,"..$ein")) {
@DATEI_INHALT=<ANTWORT>;
close(ANTWORT);
}
foreach $zeile(@DATEI_INHALT){
foreach $feld (@order_fields){
if ($zeile=~/\[$feld\]/){
$zeile=~s/\[$feld\]/$FORM{$feld}/;
}
}
}
#schreiben der Zieldatei
open(AUSGABE,">>..$aus");
foreach $zeile (@DATEI_INHALT) {
print AUSGABE $zeile;
}
close(AUSGABE);
#Ausgabe der Antwortseite
if ($FORM{success}) {
print "Location:$FORM{success}\n\n";
}
else {
print "Content-type:text/html\n\n";
print "Ihre eingegebenen Daten wurden gespeichert. <BR><HR>";
}
#------------------------------------------------------------
# sub: Get_Cgi - Einlesen der Umgebungsvariablen
#------------------------------------------------------------
sub Get_Cgi {
if ($ENV{'REQUEST_METHOD'} eq "GET")
{
$buffer = $ENV{'QUERY_STRING'};
}
else
{
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
}
@pairs = split(/&/, $buffer); #Splite Namen und Werte auf
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /; #Un-Webify plus signs and %-encoding
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/\r//g; #Keine CRs (braucht nur DOS=DOOF)
$value =~ s/ö/oe/g;
$value =~ s/Ö/Oe/g;
$value =~ s/ä/ae/g;
$value =~ s/Ä/Ae/g;
$value =~ s/ü/ue/g;
$value =~ s/Ü/Ue/g;
$value =~ s/ß/sz/g;
$FORM{$name} = $value;
$order_fields[$i]=$name;
$i=$i+1;
}
}
# Ende sub: Get_Cgi
|