[Perl CGI] Problème d'affichage

Problème d'affichage [Perl CGI] - Perl - Programmation

Marsh Posté le 12-08-2003 à 20:11:01    

Bonjour @ tous,
J'ai une petite question en Perl et plus précisément en ce qui concerne les CGI.
J'ai fait un petit moteur de recherche pour un site web et l'affichage des résultats bug parfois: je n'ai pas l'ensemble de mes "print" qui s'affichent.
Peut être faudrait il que je sorte tous mes print dans un tampon et que je n'affiche qu'en une fois. Pendant ce temps je voudrais qu'un message du genre "patientez svp" s'affiche.
Pensez vous que cela arrange mon pb ? Si oui, comment dois-je m'y prendre en gros ?
 
Merci beaucoup !
Fafix

Reply

Marsh Posté le 12-08-2003 à 20:11:01   

Reply

Marsh Posté le 14-08-2003 à 10:09:35    

Fais des tests pour voir ce qui manque et lis le code HTML...
suffit d'un tag HTML mal placé pour que des pans entiers disparaissent même si ils sont présents dans le source.
 
d

Reply

Marsh Posté le 14-08-2003 à 10:53:39    

tu envoies correctement les headers avant tes prints?

Reply

Marsh Posté le 14-08-2003 à 11:38:45    

d_wrk a écrit :

Fais des tests pour voir ce qui manque et lis le code HTML...
suffit d'un tag HTML mal placé pour que des pans entiers disparaissent même si ils sont présents dans le source.
 
d


 
Oui mais le problème c'est que des fois, rien ne manque et d'autres fois il manque toute la fin ... c'est bizarre ... :(

Reply

Marsh Posté le 14-08-2003 à 11:39:18    

Anapajari a écrit :

tu envoies correctement les headers avant tes prints?


 
Oui oui, j'envoies bien les headers ...

Reply

Marsh Posté le 14-08-2003 à 11:42:21    

Fafix a écrit :


Oui mais le problème c'est que des fois, rien ne manque et d'autres fois il manque toute la fin ... c'est bizarre ... :(


Si il manque toute la fin c'est du a mon avis à un arret prematuré de ton script. Regarde dans tes logs si tu n'as pas un pb. Vérifie la durée maximal d'execution dans tes conf ... ce genre de chose!

Reply

Marsh Posté le 14-08-2003 à 12:40:30    

Anapajari a écrit :


Si il manque toute la fin c'est du a mon avis à un arret prematuré de ton script. Regarde dans tes logs si tu n'as pas un pb. Vérifie la durée maximal d'execution dans tes conf ... ce genre de chose!


 
Ok merci, je vais regarder ça ...
Je vais les trouver sur le server, je suppose, tous ces logs ?

Reply

Marsh Posté le 14-08-2003 à 13:10:55    

Fafix a écrit :


 
Ok merci, je vais regarder ça ...
Je vais les trouver sur le server, je suppose, tous ces logs ?


Bin non chez ma soeur elle les collectionne depuis 1832  :D  
 
Ou donc sur ton serveur, si c'est un nux il y a de fortes chances qu'il soit dans /var/log/httpd/ interesse toi particulierement a perl-error_log et si ton serveur est sous win c'est maaaal  :o

Reply

Marsh Posté le 15-08-2003 à 10:05:38    

Anapajari a écrit :


Bin non chez ma soeur elle les collectionne depuis 1832  :D  
 
Ou donc sur ton serveur, si c'est un nux il y a de fortes chances qu'il soit dans /var/log/httpd/ interesse toi particulierement a perl-error_log et si ton serveur est sous win c'est maaaal  :o  


 
Mon server (en fait, c'est pas le mien, c'est celui d'une petite boîte où je fais un job étudiant) est sous win ...

Reply

Marsh Posté le 15-08-2003 à 12:04:47    

si tu as perl 5.8 essai de mettre en haut de ton script:
 
$|=1;

Reply

Marsh Posté le 15-08-2003 à 12:04:47   

Reply

Marsh Posté le 15-08-2003 à 14:26:05    

pospos a écrit :

si tu as perl 5.8 essai de mettre en haut de ton script:
 
$|=1;


 
Merci mais ça fait quoi ?

Reply

Marsh Posté le 15-08-2003 à 15:39:49    

ca met l'autoflush sur la sortie standard (STDOUT, celle utilisée kand tu fais un print classique, et celle qui sort vers le browser dans un CGI)
 
Par defaut dans perl 5.8 l'autoflush n'est pas enclanché (je sais pas pourkoi...) alors k'il l'etais dans perl 5.6
 
en gros ca garde en buffer ce que tu envoi jusqu'a ce que ca atteingne une certaine taille ou que tu le flush (à piroir sur le STDOUT ca flush à chaque \n). C'est utilie pour ecrire dans un fichier (pour pas etre tout le temps en train de gratter) mais sur le STDOUT je trouve que ca crain...

Reply

Sujets relatifs:

Leave a Replay

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