Marc: Brauche Hilfe: CGI-Skript läuft nicht (Internal Server Error)

Beitrag lesen

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!