Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1992 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [RESOLU] Informations d'execution d'un script en continu

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU] Informations d'execution d'un script en continu

n°1210653
brubru91
Posté le 29-09-2005 à 11:33:26  profilanswer
 

Bonjour a tous,
Serveur: Apache2 php5 sur win XP
 
 
Mon probleme est le suivant:  
J'ai un formulaire qui permet a l'utilisateur d'uploader un fichier lequel est analyse par un script en perl. L'execution de ce script peut prendre jusqu'a une minute aussi je souhaite tenir l'utilisateur au courant. Pour cela tout au long de l'execution du script, celui ci donne de ses nouvelles (15% complete...). Mon probleme est que tant que l'execution du script ne s'est pas terminee, le navigateur reste sur la page avec le formulaire. Il n'affiche meme pas le contenu statique de la page qui contient le code php qui affiche le script.
 
Mon code ressemble a ca:
<?php
(...)
echo "Ok, File upload succeeded<br>";
$file_path= "C:\\ici\\upload\\".$name;
echo "<br>";
echo passthru("C:\\un\\certain\\script.pl $file_path" );
unlink($file_path);  
(...)
?>
Cependant je ne pense pas que le probleme vienne de la... la question est d'ou ?
 
 
Merci beaucoup pour vos suggestions.


Message édité par brubru91 le 29-09-2005 à 14:23:14
mood
Publicité
Posté le 29-09-2005 à 11:33:26  profilanswer
 

n°1210677
omega2
Posté le 29-09-2005 à 11:55:43  profilanswer
 

plusieurs trucs :
tant que le fichier n'est pas uploader, le script ne sera pas exécuté.
Quand au script perl, si php sait à quel moment le script termine son exécution, c'est surement que php attend qu'il ai finis pour continuer sa propre exécution. Donc, là aussi le script ne peut rien faire tant qu'il n'a pas repris la main.
 
Mais bon, t'es au courant que le PERL est capable de fonctionner avec apache pour générer directement du code html renvoyé au navigateur? La solution serait peut être là. ;)

n°1210682
brubru91
Posté le 29-09-2005 à 12:00:03  profilanswer
 

Ce que je ne comprend pas c'est que le serveur ne fournisse pas la page au fur et a mesure mais attende qu'elle soit complete. Il ne donne meme pas la partie statique.
Pour ce qui est de Perl pour generer du html je suppose que tu fais allusion a mod_perl? Je l'ai installe mais je ne sais pas trop comment l'utiliser. En particulier ca voudrait dire qu'il faut que Perl prenne en charge l'upload du fichier et je ne sais pas si ca va etre aussi simple qu'en php.

n°1210725
dwogsi
Défaillance cérébrale...
Posté le 29-09-2005 à 13:06:45  profilanswer
 

Si je me souviens bien, une histoire de buffer devrait faire l'affaire!

n°1210726
omega2
Posté le 29-09-2005 à 13:07:04  profilanswer
 

Y a déjà eu uen discution sur comment gérer les caches d'apache de php et comment contourner les attentes d'affichage des navigateurs pour que ca s'affiche dessuite.
C'était dans la partie html, mais j'ai pas le liens.

n°1210750
brubru91
Posté le 29-09-2005 à 13:36:11  profilanswer
 

Je suppose que tu fais reference a ceci:
http://forum.hardware.fr/hardwaref [...] 7114-1.htm
En effet, ca resoud une partie de mon probleme: maintenant la partie avant le script est affichee directement en mettant flush(). Cependant ca ne m'aide pas pour afficher en continu la progression de l'execution du script.
 
merci en tout cas

n°1210795
brubru91
Posté le 29-09-2005 à 14:21:24  profilanswer
 


Ok grace a quelqu'un de tres aimable voici la solution:
il fallait desactiver le buffering dans le script perl de cette facon:
$|++; (juste apres la premiere ligne #!/usr/bin/perl -w)
 
Merci a tous

n°1210810
dwogsi
Défaillance cérébrale...
Posté le 29-09-2005 à 14:33:09  profilanswer
 

Je savais bien qu'avec les buffer on arriverait à quelque chose! :)

n°1210813
brubru91
Posté le 29-09-2005 à 14:37:12  profilanswer
 

dwogsi a écrit :

Je savais bien qu'avec les buffer on arriverait à quelque chose! :)


 
Mmh bah un probleme de buffer oui c'est ce qu'il semblait cependant je suis un peu surpris que cela vienne du buffer d'execution du script de perl parce que quand j'executais le script directement depuis la console, il affichait au fur et a mesure et pas tout d'un coup. Ca veut dire que quand on appelle le script depuis une commande php comme system, c'est pas la meme chose.
Enfin l'important c'est que maintenant ca marche :)

n°1210839
dwogsi
Défaillance cérébrale...
Posté le 29-09-2005 à 15:01:31  profilanswer
 

Je reconnais que ca parait un peu étrange puisqu'effectivement en mode console ca réagit pas pareil mais bon je suppose comme toi que ca doit pas fonctionné pareil quand c'est appelé par Php...
 
Mais, comme toujours, dès qu'il sagit d'envois le code déjà généré avant la fin de l'exécution d'un script => Buffers!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [RESOLU] Informations d'execution d'un script en continu

 

Sujets relatifs
unicode, __str__, __ref__ et affichage [résolu]Script de génération de formulaire - Besoin de vos avis
[ASP.NET] - Access denied sur un site web de prod. [RÉSOLU][Résolu] Expressions régulières et classes
Recuperation chemin execution de script[Résolu] Dao : function replace() & access 2000
[résolu] pb longueur de chaîne avec dbi:PgPP[c++/Python] Passer une instance c++ à un script python
[Question] - Comment lancer un script perl en tache de fond 
Plus de sujets relatifs à : [RESOLU] Informations d'execution d'un script en continu


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR