Hallo allerseits,
ich möchte mir Daten aus einem Formular senden lassen.
Da die Versendung per E-Mail scheinbar nicht immer funktioniert, wollte ich es per CGI-Skript machen.
Habe leider überhaupt keinen Schimmer vom Programmieren,
deshalb habe ich ein fertiges Skript versucht zu modifizieren (nach der "Abschreibe-Methode", wie gesagt hab ich keine Ahnung von Perl, CGI oder wasauchimmer).
Irgendwas hab ich aber scheinbar falsch gemacht, hier mein Skript:
#!/usr/bin/perl
&parse_form_data (*formular_feld);
&start_mail();
#***************************************************
Fuer jedes Formular Feld ein Eintrag der Form:
$Variable = $formular_feld{'FORMULA-FELD-NAME'};
#***************************************************
$Vorname = $formular_feld{'Vorname'};
$Nachname = $formular_feld{'Nachname'};
$Land = $formular_feld{'Land'};
$E-Mail = $formular_feld{'E-Mail'};
$Frage1 = $formular_feld{'Frage1'};
$Frage2 = $formular_feld{'Frage2'};
$Frage3 = $formular_feld{'Frage3'};
$Kommentar = $formular_feld{'Kommentar'};
$Email_Empfaenger = $formular_feld{'an'};
$Email_Von = $formular_feld{'von'};
$Email_Antwort_An = $formular_feld{'antwort'};
$Betreff = $formular_feld{'betreff'};
$Ziel = $formular_feld{'ziel'};
#***************************************************
Zwischen <<Ende_Mail und Ende_Mail können Sie den
Email Text angeben, die oben angegebenen Variablen
können dabei verwendet werden.
#***************************************************
$Mail_Text = <<Ende_Mail;
Email von der Website
Vorname: $Vorname
Nachname: $Nachname
Land: $Land
E-Mail: $E-Mail
Frage1: $Frage1
Frage2: $Frage2
Frage3: $Frage3
Kommentar: $Kommentar
Ende_Mail
#*******************************************************************************
AB HIER KEINE AENDERUNGEN MEHR VORNEHMEN !!!
#*******************************************************************************
#*******************************************************************************
#*******************************************************************************
#*******************************************************************************
#*******************************************************************************
open (SENDMAIL, "| /usr/sbin/sendmail -t -n");
print SENDMAIL "From: $Email_Von\n";
print SENDMAIL "To: $Email_Empfaenger\n";
print SENDMAIL "Reply-To: $Email_Antwort_An\n";
print SENDMAIL "Subject: $Betreff\n";
print SENDMAIL "\n";
print SENDMAIL $Mail_Text;
print "Location: $Ziel","\n\n";
exit(0);
sub parse_form_data
{
local (*FORM_DATA) = @_;
local ( $request_method, $query_string, @key_value_pairs, $key_value, $key, $value);
$request_method = $ENV{'REQUEST_METHOD'};
if ($request_method eq "GET") {
$query_string= $ENV{'QUERY_STRING'};
} elsif ($request_method eq "POST") {
read (STDIN, $query_string, $ENV{'CONTENT_LENGTH'});
}
@key_value_pairs = split (/&/, $query_string);
foreach $key_value (@key_value_pairs) {
($key, $value) = split (/=/, $key_value);
$value =~ tr/+/ /;
$value =~ s/%([\dA-Fa-f][\dA-Fa-f])/pack ("C", hex ($1))/eg;
if (defined($FORM_DATA{$key})) {
$FORM_DATA{$key} = join ("\0", $FORM_DATA{$key}, $value);
} else {
$FORM_DATA{$key} = $value;
}
}
}
sub start_mail
{
$Email_Empfaenger = $formular_feld{'an'};
$Email_Von = $formular_feld{'von'};
$Email_Antwort_An = $formular_feld{'antwort'};
$Betreff = $formular_feld{'betreff'};
$Ziel = $formular_feld{'ziel'};
}
Vielen herzlichen Dank für Eure Hilfe!