Marcel: Habe KEINE Ahnung - Formular

Beitrag lesen

Hallo,

ich muss gleich vorwegnehmen, dass ich mit CGI KEINE Ahnung habe. Ich versuche mir das notwendigste über Learning-By-Doing beizubringen. Leider stößt man da relativ schnell an seine Grenzen.

Ich hoffe, dass mir hier jemand helfen kann.

Ich habe ein Formular, in dem ich den Empfänger auswählen kann. Das CGI Script ist das, was auf der SELFHTML Seite als Beispiel gegeben ist. (http://aktuell.de.selfhtml.org/tippstricks/cgiperl/form-mail/index.htm#beispiel)

Dieses Skript arbeitet eigentlich nur mit einem festen Empfänger. Ich habe mich ein wenig umgesehen bei Perl und CGI usw. und das Skript ein wenig abgeändert, damit das Skript, abhängig vom Wert des Feldes "Empfaenger" einen Empfänger auswählt und das Formular dort hinschickt. Vermutlich habe ich das komplett falsch gemacht.

Wenn ich das Formular abschicke, sagt der Browser was von internal error or misconfiguration....

Vielleicht kann mir jemand helfen.

Hier mal der Code meines HTML-Formulars und des geänderten Skripts:
HTML DATEI ANFANG

<form action="./cgi-bin/selfmail.pl" method="post">
<input type="hidden" name="return" value="./kontanktformular_danke.htm">
<input type="hidden" name="delimiter" value=": ">
<input type="hidden" name="subject" value="Anfrage über Kontakt-Formular">

<select name="Anrede" size="1">
 <option value="Herr">Herr
        <option value="Frau">Frau</select>

<p>Vorname</p>
 <input type="Text" name="Vorname" value="" size="30" maxlength="30">

<p>Name</p>
 <input type="Text" name="Name" value="" size="30" maxlength="30">

<p>Emailadresse</p>
  <input type="Text" name="Email" value="" size="40" maxlength="40">

<p>Mitteilung senden an:</p>
 <select name="Empfaenger" size="1">
         <option value="MA1">Mitarbeiter1
         <option value="MA2">Mitarbeiter2
         <option value="MA3">Mitarbeiter3
         <option value="MA4">Mitarbeiter4
 </select>

<p>Mitteilungstext</p>
 <textarea name="Mitteilung" cols="40" rows="15"></textarea>

<input type="reset" value="Formular löschen">

<input type="Submit" name="Senden" value="Absenden">
</form>

HTML DATEI ENDE

CGI SKRIPT ANFANG

#!/usr/bin/perl

$Sendmail_Prog = "/usr/lib/sendmail";

use CGI;

$query = new CGI;
@names = $query->param;

$delimiter = $query->param('delimiter');  # ---> Begrenzerzeichen zwischen name und value
$returnhtml = $query->param('return');    # ---> URL für Dankeseite
$subject = $query->param('subject');      # ---> E-Mail-Subject
$subject =~ /\s/ /g

if $query->param('Empfaenger') eq 'MA1'{
$mailto = 'Email1@hier.dort'
}
if $query->param('Empfaenger') eq 'MA2'{
$mailto = 'Email2@hier.dort'
}
if $query->param('Empfaenger') eq 'MA3'{
$mailto = 'Email3@hier.dort'
}
if $query->param('Empfaenger') eq 'MA4'{
$mailto = 'Email4@hier.dort'
}

$mailtext = "";
foreach(@names) {
  $name = $_;
  @values = "";
  @values = $query->param($name);
  if($name ne "return" && $name ne "subject" && $name ne "delimiter") {
    foreach $value (@values) {
      $mailtext = $mailtext.$name;
      $mailtext = $mailtext.$delimiter;
      $mailtext = $mailtext.$value."\n";
    }
  }
}

open(MAIL,"|$Sendmail_Prog -t") || print STDERR "Mailprogramm konnte nicht gestartet werden\n";
print MAIL "To: $mailto\n";
print MAIL "Subject: $subject\n\n";
print MAIL "$mailtext\n";
close(MAIL);

print "Location: $returnhtml\n\n";

CGI SKRIPT ENDE