Martiano: neue *pl erstellen

Beitrag lesen

sorry für das doppelposting, hatte einiges verändert und wollte nicht verwirren. Wenn möglich bitte löschen.Hier nochmal hoffentlich an richtiger Stelle:

mein aktuelles Problem ist folgende Fehlermeldung wenn ich das Formular abschicke:

Premature end of script headers: FormMail.pl

Hier der Teil des Formulars der das Schicken regelt:

--------------------------------------------------------------------

s="meine@email.de";
     if (s=="") {s="meine@email.de"}

var sub="";
     if (sub.length>0)
     {
      if (sub.substring(sub.length-1,sub.length)=="/")
      {
       sub=sub.substring(0,sub.length-1) ;
      }
       if(sub.search("http") == -1){sub="http://"+sub;}
     }
     if (""!="")
     {
      sub=sub+"/"+"";
      if (sub.substring(sub.length-1,sub.length)=="/")
      {
       sub=sub.substring(0,sub.length-1) ;
      }
     }
     if (sub.length>0)
     {
      sub=sub+"/submit.htm";
     }
     else
     {
      sub="submit.htm";
     }

if ("1"=="1")
     {
      document.write("<FORM ACTION="http://www.meine-url.de/cgi-bin/FormMail.pl" METHOD="POST" ONSUBMIT="return Bestellung(this)">");
     }
     else
     {
      if ("1"=="2")
      {
       document.write("<FORM ACTION="http://www.meine-url.de/cgi-bin/FormMail.pl" METHOD="POST" ONSUBMIT="return Bestellung(this)">");
      }
      else
      {
       document.write("<FORM ACTION="mailto:"+s+" ?subject=Bestellung von "+Name+"" METHOD="POST" ENCTYPE="text/plain" ONSUBMIT="return Bestellung(this)">");
      }
     }
     document.write("<P>");
     document.write("<INPUT TYPE="HIDDEN" NAME="recipient" VALUE=""+s+"">");
     document.write("<INPUT TYPE="HIDDEN" NAME="subject" VALUE="Bestellung von "+Name+"">");
     document.write("<INPUT TYPE="HIDDEN" NAME="email" VALUE=""+parent.anschrift.E_Mail+"">");
     if ("Falsch"!="Wahr")
     {
      document.write("<INPUT TYPE="HIDDEN" NAME="redirect" VALUE=""+sub+"">");
     }
     else
     {
      document.write("<INPUT TYPE="HIDDEN" NAME="afssub" VALUE=""+sub+"">");
     }
     document.write("<INPUT TYPE="HIDDEN" NAME="ORDER" VALUE=""+bestell+"">");

//-->
     </SCRIPT>

----------------------------------------------------------------------

hier mein FormMail.pl:

#!/usr/bin/perl

überprüft und ok

use strict;
use warnings;
use CGI::Carp qw(fatalsToBrowser);

gibt Warnungen an den Browser aus

my $returnhtml = "http://www.meine-url.de/submit.htm";

my $Sendmail_Prog = "/usr/sbin/sendmail -t -i";

überprüft und ok

my $mailto = 'meine@email.de';

use CGI;

my $query = new CGI;

my @names = $query->param;

-------> interne Daten aus den erwarteten hidden-Feldern auslesen:

my $delimiter = $query->param('delimiter');  # ---> Begrenzerzeichen zwischen name und value

my $returnhtml = $query->param('return');    # ---> URL für Dankeseite

my $subject = $query->param('subject'); # ---> E-Mail-Subject

Wir müssen Newlines konvertieren, falls diese vorhanden sind:

$subject =~ s/\s/ /g;

aber wir sind noch nicht fertig.

Für das Subject ist ein spezielles Encoding für Umlaute notwendig:

use Encode qw/encode decode/;
$subject = decode('MIME-B', $subject);

-------> Text der E-Mail aus den Formulardaten ermitteln:

my $mailtext = "";

foreach my $name(@names){

@values = "";
   @values = $query->param($name);
   if($name ne "return" && $name ne "subject" && $name ne "delimiter") {

foreach my $value (@values) {
       $mailtext = $mailtext.$name;
       $mailtext = $mailtext.$delimiter;
       $mailtext = $mailtext.$value."\n";
     }
   }
 }

-------> E-Mail versenden:

open(MAIL,"|$Sendmail_Prog -t")
      or die("Fehler beim Aufruf des mailprogramms $!");

print MAIL "To: $mailto\r\n";

Wir geben Network-Newlines aus!

print MAIL "Subject: $subject\r\n";

schliesse die Header-Sektion ab:

print MAIL "\r\n";

print MAIL "$mailtext\n";

close(MAIL);

-------> Dankeseite an Browser senden:

Wir haben es mit HTTP-Header zu tun:-> Network-Newlines

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

Das kann an diesem Punkt fehlschlagen wenn Warnungen ausgegeben werden.

-----------------------------------------------------------------------

auf was weisst dieser Fehler hin?
Ich kann weder javascript noch perl.
Was kann ich ändern oder ist offensichtlich falsch?