Martiano: neue *pl erstellen

Beitrag lesen

BEGIN {

use CGI::Carp qw(carpout);
   open(LOG, ">>","error.txt")
       or die "Unable to append to error.txt: $!\n";
   carpout(*LOG);
}

Ersetzung habe ich gemacht und die Datei

error.txt wurde erstellt im cgi-bin Verzeichnis. Schreibrechte sehen so aus:

-rw-rw-r--    1 ftpxx- users        1965 Oct 22 13:36 FormMail.pl
-rw-rw-rw-    1 ftpxx- users           0 Oct 22 13:04 error.txt

Leider kommt immer noch diese Fehlermeldung:
Die Anfrage kann nicht beantwortet werden, da im Server ein interner Fehler aufgetreten ist.
Fehlermeldung:
Premature end of script headers: FormMail.pl

Im Internet habe ich immer wieder die Schreibrechte als Fehlerursacher für diese Meldung gesehen. Aber das scheint ja hier nicht vorzuliegen.
Das Verzeichnis selbst (cgi-bin) hat die Rechte 755.

Aber auch in der Datei error.txt wird nichts geschrieben nachdem ich den Fehler reproduziert habe.

Die FormMail.pl sieht jetzt so aus:

#!/usr/bin/perl  
use strict;  
use warnings;  
  
BEGIN {  
   use CGI::Carp qw(carpout);  
   open(LOG, ">>","error.txt")  
       or die "Unable to append to error.txt: $!\n";  
   carpout(*LOG);  
}  
# schreibt Fehler in die datei error.txt  
  
my $returnhtml = "http://www.meine-adresse.de/submit.htm";  
my $Sendmail_Prog = "/usr/sbin/sendmail -t -i";  
my $mailto = 'meine@email.de';  
use CGI;  
my $query = new CGI;  
my @names = $query->param;  
my $delimiter = $query->param('delimiter');  
my $returnhtml = $query->param('return');    # ---> URL für Dankeseite  
my $subject = $query->param('subject'); # ---> E-Mail-Subject  
$subject =~ s/\s/ /g;  
use Encode qw/encode decode/;  
$subject = decode('MIME-B', $subject);  
my $mailtext = "";  
foreach my $name(@names){  
   @values = "";  
my @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";  
     }  
   }  
 }  
open(MAIL,"|$Sendmail_Prog -t")  
      or die("Fehler beim Aufruf des mailprogramms $!");  
print MAIL "To: $mailto\r\n";  
print MAIL "Subject: $subject\r\n";  
print MAIL "\r\n";  
print MAIL "$mailtext\n";  
close(MAIL);  
print "Content-type: text/plain; charset=UTF-8\r\n\r\n";  
print "Testausgabe, Dankeseite\n";  
exit;

Kann ich noch etwas testen?