Lancer un php en arriere plan

cs_DevelMan Messages postés 33 Date d'inscription mardi 23 décembre 2003 Statut Membre Dernière intervention 25 septembre 2004 - 8 juil. 2004 à 18:57
cs_DevelMan Messages postés 33 Date d'inscription mardi 23 décembre 2003 Statut Membre Dernière intervention 25 septembre 2004 - 9 juil. 2004 à 19:45
Bonjour,

Je voudrais lancer l'execution d'un php en arriere plan que mon programme principal continue a se derouler pendant ce temps.

J'ai essaye ce bout de code pour lancer wintarif.php, mais mon probleme est que le programme principal ne reprend la main que quand wintarif.php est termine.

Quelqu'un a-t'il une idee sur le comment faire ?

Merci d'avance

$script = "<script language=javascript>";
$script .= "w=window.open('wintarif.php');";
$script .= "w.document.close;";
$script .= "w.blur();";
$script .= "</script>\n";
echo $script;

print"<script>top.location.replace('p_majtarifs.php');</script>";
exit(0);

6 réponses

coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
9 juil. 2004 à 08:43
Salut!
Il faudrait pouvoir faire du multi-threading, mais je crois pas que c'est posible en PHP...

@++

R@f

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"

www.progforum.net: Aide en programmation!
cs_Houzefa Messages postés 453 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 9 juillet 2004 2
9 juil. 2004 à 13:49
ya un pb dans ton script :
à peine tu ouvres la fenetre, tu essaye de la refermer aussitot (meme si tu y arrives pas, car t'as mal appelé close).
faut laisser à la page le temps de se charger !

voilà un script "mieux" :
<script language="JavaScript">
w=open("wintarif.php");
w.blur();
</script>


et dans wintarif.php tu mets, dans : onLoad="close"

Houzéf@
cs_DevelMan Messages postés 33 Date d'inscription mardi 23 décembre 2003 Statut Membre Dernière intervention 25 septembre 2004
9 juil. 2004 à 16:34
Bonjour,

Je viens de faire le test avec le script "mieux" : J'ai toujours la meme reaction, je ne reprends la main que quand le wintarif.php a fini de bosser (et le traitement est assez long .. ce qui est chiant pour les utilisateurs)

Il n'existe pas la possibilité de lancer un traitement qui ne dépende pas du prog principal ? (une fenetre non modale)

Merci encore
cs_Houzefa Messages postés 453 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 9 juillet 2004 2
9 juil. 2004 à 17:13
ce script devrait marcher, mais essaye :

<script language="JavaScript">
w=open("wintarif.php", "ouverte", "height=200, width=200");
focus();
</script>


Houzéf@

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_DevelMan Messages postés 33 Date d'inscription mardi 23 décembre 2003 Statut Membre Dernière intervention 25 septembre 2004
9 juil. 2004 à 17:32
Bonjour,

Super sympa de m'aider !

Ben je n'y arrive toujours pas ! je ne reviens dans le prog appelant que en fin de wintarif.php ! j'ai du merder qq part !

Voila ce que j'ai écrit :

PROG APPELLANT :

if (isset($_POST['finButton']))
{
$script = "<script language='javascript'>";
$script .= "w=window.open('wintarif.php','ouverte','width=200, height=200);";
$script .= "focus();";
$script .= "</script>\n";
echo $script;
print"<script>top.location.replace('p_majtarifs.php');</script>";
exit(0);
}

PROG APPELE : (wintarif.php)
<?php
session_start();
include "includes/config.php";
?>
<html>
<HEAD>
<TITLE>Edition des parametres</TITLE>

<script language=javascript>
onLoad="close"
</script>
<?php
$sql = new mysql();
$sql->connection();

.... ICI Y A UN BIG TRAITEMENT de MAJ DE MA BASE MYSQL

?>

</HTML>
cs_DevelMan Messages postés 33 Date d'inscription mardi 23 décembre 2003 Statut Membre Dernière intervention 25 septembre 2004
9 juil. 2004 à 19:45
Re,

Bon, je m'en suis sorti avec un fork :

exec("/usr/bin/php /var/www/html/transporteur/wintarif.php > /dev/null &");

Je sais, pas très estetique, mais çà marche ...

Encore merci pour ton aide
Rejoignez-nous