Blog de Gonzalo

DETECTAR CUANDO UNA PAGINA SE HA DEJADO DE EJECUTAR EN PHP

Supongamos que tenemos una página web y por un casual el usuario cierra la página o detiene el proceso y queremos detectarlo para así cerrar conexiones, finalizar procesos y que no queden a medias. Hay una manera de detectar cuando una página se ha dejado de ejecutar en php y es con la función ignore_user_abort que establece si la desconexión de un cliente debería abortar la ejecución del script y con la función connection_status que devuelve el estado de la conexión. Los estados posibles son:

  • CONNECTION_NORMAL cuyo valor es 0
  • CONNECTION_ABORTED cuyo valor es 1
  • CONNECTION_TIMEOUT cuyo valor es 2
Voyt a poner un ejemplo:>

gnore_user_abort(true);
set_time_limit(0);
while(1)
{
    flush();
    ob_flush();
    //El usuario cierra la pagina o detiene el proceso o falla la ejecución
    if(connection_status() != CONNECTION_NORMAL)
    {
        //Operaciones a realizar
        break;
    }
}
este ejemplo es bastante sencillo espero y es para hacerlo con el navegador.