Patrick Canterino: Fehler in Perl Script Formularwerte an sendmail

Beitrag lesen

Hallo Tobias,

mal abgesehen von dem, was dir fastix schon gesagt hat, sollte das Script nach dem Versand der Mail einen gültigen HTTP-Header erzeugen. Der kann auch nur den Content-Type enthalten oder den Statuscode 204 zurückgeben.

Weiterhin solltest du das strict-Modul einbinden und das hier

if($ENV{'REQUEST_METHOD'} eq 'GET')
{
  $Daten = $ENV{'QUERY_STRING'}
}
else
{
  read(STDIN, $Daten, $ENV{'CONTENT_LENGTH'});
}

@Formularfelder = split(/&/, $Daten);
foreach $Feld (@Formularfelder)
{
  ($name, $value) = split(/=/, $Feld);
  $value =~ tr/+/ /;
  $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
  $value =~ s/<!--(.|\n)*-->//g;
  $Formular[$i] = $name;
  $i = $i + 1;
  $Formular[$i] = $value;
  $i = $i + 1;
}

entfernen und die Routinen aus dem CGI-Modul verwenden. Die sind wesentlich zuverlässiger.

Viele Grüße
  Patrick Canterino

--
"Ein kluger Mann widerspricht nie einer Frau. Er wartet, bis sie es selbst tut." (Humphrey Bogart)