Schrift
[thread]227[/thread]

print() on closed filehandle MAIL?



<< >> 8 Einträge, 1 Seite
x-man
 2004-04-09 00:37
#1966 #1966
User since
2003-09-11
67 Artikel
BenutzerIn
[default_avatar]
Direkt nach dem Öffnen von sendmail erhalte ich folgende Fehlermeldung:

Code: (dl )
print() on closed filehandle


Der Codeabschnitt ist:

Code: (dl )
1
2
3
4
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?
jan
 2004-04-09 02:05
#1967 #1967
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
wahrscheinlich geht irgendwas schief, aber weil du keine fehler abfängst, bekommst du es nicht mit. ersetz mal
Code: (dl )
open (MAIL,"|$sendmail");

durch
Code: (dl )
open (MAIL,"|$sendmail") || die "Konnte sendmail ($sendmail) nicht gepiped oeffnen: $!";


und guck dir die ausgabe an...
x-man
 2004-04-09 17:10
#1968 #1968
User since
2003-09-11
67 Artikel
BenutzerIn
[default_avatar]
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.
esskar
 2004-04-09 17:20
#1969 #1969
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[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!
x-man
 2004-04-09 17:37
#1970 #1970
User since
2003-09-11
67 Artikel
BenutzerIn
[default_avatar]
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)
esskar
 2004-04-09 18:23
#1971 #1971
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
ohne Sterben
Code: (dl )
1
2
3
4
5
6
7
8
if(open (MAIL,"|$sendmail"))
{
close(MAIL);
}
else
{
print STDERR "Konnte sendmail ($sendmail) nicht gepiped oeffnen: $!";
}
x-man
 2004-04-09 19:06
#1972 #1972
User since
2003-09-11
67 Artikel
BenutzerIn
[default_avatar]
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."
esskar
 2004-04-09 19:35
#1973 #1973
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
ich glaub mit CGI::Untaint kann man auch mit -T die Sachen richtig rausfischen; auch aus dem ENV; kann mich aber auch unendlich irren!
<< >> 8 Einträge, 1 Seite



View all threads created 2004-04-09 00:37.