Interrompre une fonction php

Interrompre une fonction php - PHP - Programmation

Marsh Posté le 14-04-2006 à 16:09:48    

Bonjour a tous !
Une question me taraude.
 
Environement : Php 4 , MySQL 4.0.24
 
Problème :
J'ai une fonction php qui peut durer plusieurs minutes, qui fiat des modification sur une base de données.
 
le problème est que l'utilisateur doit pouvoir interrompre ce traitement avec une page et un bouton annuler...
 
et que quand il annule la base doit revenir comme au départ ...
 
Pour les modifications de la base j'ai pensé a un COMMIT/ROLLBACK ...  
 
mais la page n'arrive jamais a l'utilisateur car elle est évaluée du coté serveur, et le serveur n'envoit pas la page tant qu'il n'a pas fini le traitement ...
 
Quelqu'un connait un moyen de traverser cet obstacle ?

Reply

Marsh Posté le 14-04-2006 à 16:09:48   

Reply

Marsh Posté le 14-04-2006 à 19:20:12    

À la rigueur tu peut ajouter un flush(), pour forcer l'affichage du bouton.
Il faudra aussi que tu trouve la config dans php.ini pour que la page s'arrête quand l'internaute coupe la connexion (dsl, je ne me souviens plus de son nom). Et ajouter une fonction de sortie de script php (``exit`` quelquechose).
Ça fonctionnera avec la plupart des navigateurs, mais ça reste un peu crade comme solution.
 
Plus élaboré: tu lance un script PHP en commande shell qui fait la mise à jour, tu stocke le PID dans une BDD ou un fichier, puis tu envoye un signal au processus pour le tuer. Idem, redéfinir une fonction de sortie.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed