[php] - arret d'un script si aucune action

Fermé
theflagada Messages postés 57 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 27 octobre 2009 - 27 oct. 2009 à 11:06
dragondark Messages postés 465 Date d'inscription samedi 23 février 2008 Statut Membre Dernière intervention 27 avril 2016 - 29 oct. 2009 à 11:09
Bonjour,


Voila ce que j'essaye de faire:

Je veux arreter l'execution d'un script php si rien ne se passe pendant un temps donné (par exemple 60 secondes).

En effet si aucun utilisateur ne fait une action , je stop au bout de 60 secondes. PAr contre si au cours de ces 60 secondes un utilisateur envoi une info ( un bouton submit ou autre), alors je remet le timer à 60. et je recommence a compter et ainsi de suite. Ainsi si rien ne se passe le script s'arrete sinon continue.

Quelqu'un saurait-il comment faire s'il vous plait?
A voir également:

4 réponses

Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
27 oct. 2009 à 11:14
salut.

le time out par défaut est paramètré dans le fichier php.ini... ca me parait dur de faire ce que tu veux.

De plus, si l'utilisateur fait une action, comme tu dis, ca va lancer le déroulement d'une page en parallèle, , difficile (pas impossible) de les faire interagir en PHP.

quel genre de scipt fais tu pour avoir besoin de réamorcer la timeout ?
0
dragondark Messages postés 465 Date d'inscription samedi 23 février 2008 Statut Membre Dernière intervention 27 avril 2016 157
27 oct. 2009 à 11:24
il faut savoir que le script php est un script serveur et donc s'exécute avant l'affichage de la page web.
si tu tien a faire du php après l'affichage je te propose l'ajax (javascript d'appel php)
tu fais un 'setTimeout() avec le code qui va bien
0
theflagada Messages postés 57 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 27 octobre 2009 4
27 oct. 2009 à 11:36
En fait voila quelques détails:

pour information:
-J'utilise une glib event loop donc mon script tourne sans arret tant que je ne lui ai pas dit de s'arreter.
-mon script est lancé en ligne de commande et tourne en cgi


voila en gros ce que je cherche à faire ( mais qui ne marche pas). quand la boucle est lancée, je n'arrive pas à l'arreter.


private $_stop;


public function receive_signal_utilisateur ()
{
	//si la fonction est appelée ( quand l'utilisateur envoi un signal), je casse la boucle!
	$this->return1();

	// je fais une action quelconque

 	//je remets la valeur de stop à 0
	$this->return0();

	//je relance la boucle
	$this->timer();

}
public function return0()
{
	return $this->_stop = 0;
}
public function return1()
{
	return $this->_stop = 1;
}
//fonction timer qui compte avant d'arreter le script
public function timer()
{
	$count = 60;
	$sleep = 1;
 
	while($countdown > 0) 
	{
		if ($this->_stop == 1) break;
		else if($this->_stop == 0) 
		{
			$count--;
		}
		sleep($sleep);
	}
	exit(0);
}


0
dragondark Messages postés 465 Date d'inscription samedi 23 février 2008 Statut Membre Dernière intervention 27 avril 2016 157
29 oct. 2009 à 11:09
et c'est quoi les actions possible par les utilisateurs?
0