Foros del Web » Programando para Internet » PHP »

Interrumpir ejecución de script PHP desde fuera

Estas en el tema de Interrumpir ejecución de script PHP desde fuera en el foro de PHP en Foros del Web. Holas a todos. La verdad es que dudé un poco sobre el lugar donde colocar esta pregunta, porque no sé si correspondería mejor a HTML/Javascript ...
  #1 (permalink)  
Antiguo 25/03/2008, 13:58
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 8 meses
Puntos: 56
Interrumpir ejecución de script PHP desde fuera

Holas a todos.

La verdad es que dudé un poco sobre el lugar donde colocar esta pregunta, porque no sé si correspondería mejor a HTML/Javascript o si está bien aquí, en PHP.

La situación es esa: Tengo una página donde tengo un iframe. Haciendo un click con un botón del html padre, cargo un script php, dentro del iframe, que procesa ciertos datos y retorna algunos resultados en el mismo iframe.

El caso es que dicho proceso es algo lento, por eso quiero dejarles a los usuarios la posibilidad de "cancelarlo" desde fuera, esto es, desde un simple botón en el HTML padre que diga "Cancelar".

Actualmente lo que hice fue que al presionar el botón de "Cancelar", se cargue de nuevo el script que se estaba cargando, pero esta vez con un valor de entrada tipo $cancelar = true. De modo que cuando el script se ejecute, al tener $cancelar en verdadero, muestre un mensaje de "Proceso cancelado".

Esta solución funciona, pero coja. Porque si bien muestra el mensajito de "Cancelado", lo hace una vez que el script con los datos originales ha terminado de ser procesado. Esto es, que si el script demoró 10 minutos en terminar, a los 10 minutos muestra el "Cancelado", jajaja xD

El hecho es que al ejecutar un script de larga duración, por más que cerremos el navegador, el script sigue corriendo en el servidor hasta que, sea por timeout o por propio diseño, se detiene y libera de carga al servidor.

Quiero saber eso, pues, cómo hago para detener un script php en proceso pero desde fuera, desde el cliente :(...... Sé que suena estúpido, pero es sólo una pregunta.... (en programación no web se puede, simplemente cambiando el valor de variables globales, las cuales son consultadas en cada vuelta de un bucle, el cual se detiene si la variable así lo determina).

Esop. Muchas gracias por anticipado.
Saludos!
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*

Última edición por quinqui; 25/03/2008 a las 14:10
  #2 (permalink)  
Antiguo 25/03/2008, 14:03
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Interrumpir ejecución de script PHP desde fuera

Mmm lo que podrias hacer es tener una variable de sesión en los scripts, como bien dices uno que diga $_SESSION['cancelado'] = false;, y desde tu botón Cancelar haces un proceso AJAX y cambias $_SESSION['cancelado'] a true y ya desde tu script si ve que $_SESSION['cancelado'] es true, detiene el proceso.

Saludos.
  #3 (permalink)  
Antiguo 25/03/2008, 14:05
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 8 meses
Puntos: 56
Re: Interrumpir ejecución de script PHP desde fuera

Pero lo hará? O sea, es que por lo que he visto, no se puede uno meter dentro de la ejecución del php que ya inició :(........
Bueno, lo probaré antes de seguir dudando. Gracias ;)
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:42.