User since
2003-09-11
67
Artikel
BenutzerIn
Direkt nach dem Öffnen von sendmail erhalte ich folgende Fehlermeldung:
print() on closed filehandle
Der Codeabschnitt ist:
my $sendmail = "/usr/lib/sendmail -t"
open (MAIL,"|$sendmail");
print MAIL "To: $my_email\n";
print MAIL "From: $my_email\n";
Kann mir bitte jemand erklären, wie sowas passieren kann?
User since
2003-08-04
2536
Artikel
ModeratorIn
wahrscheinlich geht irgendwas schief, aber weil du keine fehler abfängst, bekommst du es nicht mit. ersetz mal
open (MAIL,"|$sendmail");
durch
open (MAIL,"|$sendmail") || die "Konnte sendmail ($sendmail) nicht gepiped oeffnen: $!";
und guck dir die ausgabe an...
User since
2003-09-11
67
Artikel
BenutzerIn
Da ich das Script auf Windows teste, kann sendmail sowieso nicht gefunden werden, nur warum meldet er keinen Fehler beim Öffnen (The system cannot find the path), sondern erst beim printen? Auf dem UNIX system habe ich leider keinen Zugriff auf error.log um festzustellen, was schief läuft.
User since
2003-08-04
7321
Artikel
ModeratorIn
[quote=x-man,09.04.2004, 15:10]nur warum meldet er keinen Fehler beim Öffnen (The system cannot find the path), sondern erst beim printen?[/quote]
weil du fehlerausgabe nicht ausgibst...
siehe jans post!
User since
2003-09-11
67
Artikel
BenutzerIn
Den Fehler gibt er nicht aus und das wollte ich auf meiner Machine auch nicht, weil das Script sonst "stirbt". Das ist ne Windows Machine. Diese Fehlermeldung erhalte ich (normalerweise) trotzdem in der cgierr.log meines Servers (Xitami)
User since
2003-09-11
67
Artikel
BenutzerIn
Danke esskar & jan!
Ich benutzte die Zeile
$ENV{PATH}="";
wegen "-T" und erhielt den oben beschriebenen Fehler. Irgendwas wurde geöffnet und dann wieder geschlossen (deshalb print() on closed...). Ohne die Zeile erhalte ich den (für mich) normalen Fehler:
"The system cannot find the path specified."
User since
2003-08-04
7321
Artikel
ModeratorIn
ich glaub mit CGI::Untaint kann man auch mit -T die Sachen richtig rausfischen; auch aus dem ENV; kann mich aber auch unendlich irren!