|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : octobre 2009 Messages : 7 ![]() |
Salut tout le monde,
Je suis en train de rédiger un script PHP est je capote là, sur une connerie. Alors voilà, le but c'est de faire un formulaire qui me permette de transférer des fichiers. Le formulaire est généré dynamiquement (avec du PHP donc). Cette partie la fonctionne bien ![]() Par contre, mon problème vient ensuite. Quand je clique sur mon bouton Submit, j'appelle une première fonction. Quand celle-ci se termine, elle en appelle une seconde. La encore, c'est beau. La première fonction pouvant prendre du temps à se faire (copie de fichier), je veux faire une boucle d'attente de quelques dizaines de secondes. Une fois que la copie est finie, paf, j'arrête de boucler et je lance la seconde fonction. Vous me suivez? Voilà le "Mais" qui arrive. Mais, donc, quand dans ma boucle je mets un sleep() pour patienter, eh bien ce sleep() semble être exécuté au chargement de la page Maintenant, si à la place du sleep() j'écris des conneries, genre, un "." , alors là, ça marche. L'exécution se fait dans le bon ordre (en tout cas celui que je veux)... Je deviens fou et je ne comprends pas quel est ce phénomène. Quelqu'un pourrait m'expliquer? Merci d'avance |
|
|
00
|
|
|
#2 | ||
![]() ![]() Gérard ErnaelstenDBA & Dev PHP Inscription : juin 2005 Messages : 3 167 ![]() |
Tu n'es pas dans du dynamique.
Prend le code suivant Code :
Si tu lis, il doit afficher une date,attendre 10 secondes puis afficher l'autre date. En théorie c'est ce qu'il fait, mais comme l'affichage de PHP n'est pas rafraichi, il affichera les deux dates en même temps après dix secondes http://be2.php.net/manual/fr/function.sleep.php
__________________
Il faut toujours viser la lune, car même en cas d'échec on arrive dans les étoiles. O.Wilde Mes Articles/Critiques : Merise - Guide pratique PHPExcel PostgreSQL : Administration et exploitation d'une base de données PostgreSQL : Entraînez-vous à créer et programmer une base de données relationnelle |
||
|
|
00
|
|
|
#3 |
![]() ![]() Thomas RambaudDéveloppeur Web Inscription : décembre 2007 Messages : 2 134 ![]() |
PHP est executé côté serveur, si après ton sleep() tu ne fais pas un flush(), le serveur ne commence pas l'envoi du contenu au navigateur et le fait uniquement à la fin de l'execution du script.
Pourrais-tu nous fournir un script présentant ton problème et que nous pourrions tester ? |
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : octobre 2009 Messages : 7 ![]() |
Salut,
Ok, je comprends le coup du flush et je vais tenter ça. Le truc que je ne comprends pas, c'est pourquoi le sleep() semblait s'exécuter même quand a priori, il n'était pas appelé car dans un bloc inaccessible (apparemment en tout cas). J'essaie le flush() et je vous dis. |
|
|
00
|
|
|
#5 |
![]() ![]() Thomas RambaudDéveloppeur Web Inscription : décembre 2007 Messages : 2 134 ![]() |
Franchement je n'ai pas trop d'idées, faudrait vraiment un p'tit bout de code à tester
|
|
00
|
|
|
#6 |
|
Membre éclairé
![]() Inscription : octobre 2004 Messages : 235 ![]() |
Un sleep() dans du php ? Je ne vois vraiment pas à quoi ça sert là ...
Tu peux fournir un peu plus de code, notamment ton formulaire ? |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com