Filtre avec apache2 en perl - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 09-03-2005 à 14:54:41
Ta ligne là :
Code :
|
Tu as commenté (et donc désactivé) la partie te faisant quitter ton prog s'il ne parvient pas à ouvrir en écriture $ARGV[0].
Si tu réactive ton die, qu'est-ce que ça donne ?
Edit : print() on closed filehandle SAVE at, c'est le compilo qui te prévient que tu essaie de printer sur un canal pas ouvert en écriture.
Marsh Posté le 09-03-2005 à 22:44:58
Salut
Merci pour le coup de main.
Si je réactive le die, j'ai en prime:
can't open : 0 at /var/www/hebergemoi/cgi-bin/afflogo.pl line 5.
j'ai oublié de mentionner que le message d'erreur suivant est:
[Wed Mar 09 22:37:19 2005] [error] [client 192.168.0.11] (32)Broken pipe: apr_file_write(child input), len 0
[Wed Mar 09 22:37:19 2005] [error] [client 192.168.0.11] (32)Broken pipe: apr_file_write(child input), len 0
s'ensuit alors une série de :
print() on closed filehandle SAVE at /var/www/hebergemoi/cgi-bin/afflogo.pl line 17, <STDIN> line 547.
print() on closed filehandle OUT at /var/www/hebergemoi/cgi-bin/afflogo.pl line 19, <STDIN> line 547.
autant de fois qu'il y a de print, ce qui est logique, vu le broken pipe au départ.
L'entrée vient d'apache. La sortie retourne à apache puis au navigateur. (OUT et SAVE)
Ca coince des deux cotés.
Le pire, c'est que sans le die, la page s'affiche nickel sur le navigateur, mais avec en prime les messages d'erreur.
Marsh Posté le 09-03-2005 à 13:27:54
Bonjour tout le monde
J'ai écrit un script perl pour faire un filtre apache 2 avec la directive:
ExtFilterDefine affpub1 mode=output
cmd=/var/www/hebergemoi/cgi-bin/afflogo.pl pour afficher automatiquement
quelque chose en haut de chaque page.
Voici le script:
#!/usr/bin/perl -w
use mod_perl qw(all);
$ARGV[0]="";
open(SAVE, ">$ARGV[0]" ); # || die "can't open $ARGV[0]: $?";
open(OUT, ">outfile" );
print"<table width=\"800\" border=\"0\" align=\"center\" cellspacing=\"0\"
cellpadding=\"0\">
<tr>
<td align=\"center\">
hello world
</td>
</tr>
</table>";
while (<STDIN> )
{ print SAVE $_;
print $_;
print OUT $_;
}
J'obtiend l'erreur suivante:
print() on closed filehandle SAVE at
/var/www/hebergemoi/cgi-bin/afflogo.pl line 10, <STDIN> line ... a chaque ligne print
Si l'un d'entre vous a une idée ? merci
pierre-louis