|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre confirmé
![]() ![]() Inscription : mars 2003 Messages : 1 043 ![]() |
Bonjour à tous,
Pas sûr d'être dans la bonne sous-rubrique, mais bon... Voila le souci : Suite au post d'un formulaire, j'exécute d'abord un script qui écrit sur le serveur et affiche le résultat dans une iframe, puis, ENSUITE, je déclenche une autre fonction qui doit copier ce qui a été écrit précédemment...et là, mystère, elle s'exécute avant ![]() Code :
Résultat : test_avant.txt : 1298921524 test_apres.txt : 1298921521 J'ai essayé un sleep, ça change rien. C'est à cause de l'iframe ? Merci de vos lumières. |
||
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() Fred Professeur des Ecoles Inscription : mai 2009 Messages : 503 ![]() |
Ce que tu observes n'a rien d'étonnant :
Le script que tu as nommé "le_script_a_executer_avant.php" ne sera appelé que lorsque la page que tu es en train de fabriquer sera affichée côté client. Et cela ne pourra se faire tant que la page n'est pas terminée puis envoyée par le serveur, donc tant que "fonction_a_executer_apres()" n'a pas été exécutée. Fred |
|
00
|
|
|
#3 |
|
Membre confirmé
![]() ![]() Inscription : mars 2003 Messages : 1 043 ![]() |
Bonjour et merci de te pencher avec moi sur ce truc, euh... crétin.
Ah ? Ben non, je ne capte pas. "script avant" est un template qui affiche une facture et l'enregistre en html sur le disque, une fois affichée. "script_apres" transforme ce html en PDF et l'envoie par mail au client. Sur la page qui "fabrique" tout ça, les 2 actions sont bien écrites l'une derrière l'autre. Pourquoi "script_apres" s'exécuterait avant "script_avant" ? Ce n'est pas "script_apres" qui déclenche "script_avant". Ce serait plutôt : une fois que "script_avant" a fait le boulot, alors "script_apres" peut faire le sien. Bon, je vais essayer de faire autrement, mais je trouve assez agaçant de ne pas comprendre ce truc. |
|
|
00
|
|
|
#4 |
|
Membre confirmé
![]() ![]() Inscription : mars 2003 Messages : 1 043 ![]() |
Bon, ben d'accord : le crétin, c'est moi.
J'avais un chdir dans la fonction de mon moteur de templates qui écrit ledit template sur le disque. Du coup ça faisait foirer l'appel de mon "script apres". Faut vraiment être vigilant avec chdir... Bonne journée à tous. |
|
|
00
|
|
|
#5 | ||
|
Membre chevronné
![]() Fred Professeur des Ecoles Inscription : mai 2009 Messages : 503 ![]() |
J'ai commenté ton code :
Code :
A moins que fonction_a_executer_apres ne fasse pas exactement ce que j'imagine. Fred |
||
|
00
|
|
|
#6 | ||
|
Membre confirmé
![]() ![]() Inscription : mars 2003 Messages : 1 043 ![]() |
Je te réponds dans le code lui-même :
Code :
En tout cas, je te remercie beaucoup de t'être penché sur mon post. Bonne journée. |
||
|
|
00
|
|
|
#7 | ||||
|
Membre chevronné
![]() Fred Professeur des Ecoles Inscription : mai 2009 Messages : 503 ![]() |
Ton problème de séquence est résolu, tant mieux.
Mais comme ton code m'a interrogé et que j'ai fait quelques tests pour vérifier, je t'en fait profiter, ainsi qu'à tous ceux qui auront le courage de lire ce qui suit : Un fichier index.php qui prépare une page avec une balise iframe : Code :
Code :
Fred |
||||
|
00
|
|
|
#8 | ||
|
Membre confirmé
![]() ![]() Inscription : mars 2003 Messages : 1 043 ![]() |
Oui...étonnant...
Comment tu expliques ça ? Et du coup, je comprends pas pourquoi ça fonctionne chez moi simplement parce que j'ai fait un chdir pour remettre le script dans le droit chemin, et, je le précise, mis un include à la place de l'iframe : Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com