Filtre avec apache2 en perl

Filtre avec apache2 en perl - Codes et scripts - Linux et OS Alternatifs

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.  :D  
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

Reply

Marsh Posté le 09-03-2005 à 13:27:54   

Reply

Marsh Posté le 09-03-2005 à 14:54:41    

Ta ligne là :

Code :
  1. open(SAVE, ">$ARGV[0]" ); # || die "can't open $ARGV[0]: $?";


 
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.


Message édité par Aricoh le 09-03-2005 à 14:55:30

---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO
Reply

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.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed