[php] - arret d'un script si aucune action
theflagada
Messages postés
57
Date d'inscription
Statut
Membre
Dernière intervention
-
dragondark Messages postés 481 Statut Membre -
dragondark Messages postés 481 Statut Membre -
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?
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:
- [php] - arret d'un script si aucune action
- Télécharger film d'action gratuitement et rapidement - Télécharger - TV & Vidéo
- Concurrent action - Guide
- Vous devez disposer d'une autorisation pour effectuer cette action - Guide
- Script vidéo youtube - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans system - Guide
4 réponses
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 ?
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 ?
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
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
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.
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);
}