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?