Foros del Web » Programando para Internet » PHP »

Manejo de conexiones

Estas en el tema de Manejo de conexiones en el foro de PHP en Foros del Web. Hola a todos. Todos savemos que si el navegante que esta en una pagina presiona Stop en su browser la ejecucion del Script finaliza, de ...
  #1 (permalink)  
Antiguo 01/09/2003, 15:55
 
Fecha de Ingreso: julio-2003
Ubicación: Santo Domingo
Mensajes: 18
Antigüedad: 21 años, 3 meses
Puntos: 0
Manejo de conexiones

Hola a todos.

Todos savemos que si el navegante que esta en una pagina presiona Stop en su browser la ejecucion del Script finaliza, de igual manera que cierre la ventana del browser.

Lo que quiero hacer es una condicion que si el navegante cancela la ejecucion del Script haga un proceso aunque en el browser del navegante no muestre nada, logico ya este estara en estado abortado.



Muchas Gracias.
  #2 (permalink)  
Antiguo 01/09/2003, 17:03
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 5 meses
Puntos: 16
Hola,

En http://www.php.net/manual/en/feature...n-handling.php comenta que puedes evitar que una desconexion del cliente aborte el script, con la directiva ignore_user_abort o la funcion ignore_user_abort().

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 02/09/2003, 08:37
 
Fecha de Ingreso: julio-2003
Ubicación: Santo Domingo
Mensajes: 18
Antigüedad: 21 años, 3 meses
Puntos: 0
Si ... Pero ?

Alguien podria publicar algo descriptivo o una experiencia ya vivida, si! que el usuario cancele la navegacion y este Script al ser cancelado pueda realizar una funcion/ejecucion/rutina.
  #4 (permalink)  
Antiguo 05/09/2003, 18:54
 
Fecha de Ingreso: julio-2003
Mensajes: 165
Antigüedad: 21 años, 4 meses
Puntos: 1
Hola,

Bueno, tengo que decir que, personalmente, encuentro el tema bien interesante. No se qué tipo de ejemplos quieras ver exactamente, pero ya que pareces buscar un script para guiarte, a continuación te presento un pequeño script que registra una simple función para que sea ejecutada cuando el script se detiene, y en caso de que la conexión haya sido abortada, registra el evento en un archivo de texto.

Toda la documentación relevante a las funciones usadas aquí se encuentra en el manual oficial de PHP, y por supuesto es de especial interés el capítulo que nuestro amigo josemi a indicado.

Código:
<?php

// Funcion que sera registrada para su ejecucion en el momento en que
// el script vaya a detenerse

function finalizar ()
{
    switch (connection_status ()) {
    case 0:
        echo "\nEl script culmino su ejecucion satisfactoriamente\n";
        break;

    case 1:
        // El script fue interrumpido, registrar este evento en un archivo

        $da = fopen ('/tmp/registro.txt', 'a');

        if (! $da)
            exit (1);

        fwrite ($da,
                'El script ' . $_SERVER['PHP_SELF'] .
                ' fue interrumpido en ' . date ('r') . "\n");

        fclose ($da);
        exit (0);

    case 2:
        echo "\nHa expirado el tiempo maximo de ejecucion\n";
        break;

    default:
        echo "\nStatus de conexion invalido... algo muy raro pasa aqui..\n";
    }

    echo "</pre>\n";  // Imprimir el cierre de la etiqueta <pre>
}


// Registrar la funcion finalizar() para que sea llamada al culminar
// la ejecucion del script

register_shutdown_function (finalizar);



// Realizar algunas acciones cualquiera

echo "<pre>\n";  // Una etiqueta <pre> para facilitar la lectura de la
                 // salida del script


// Imprimir un millon de numeros (una cantidad considerable, quizas
// quiera modificar este valor)

for ($i = 1; $i <= 1000000; $i++) {
    echo $i;

    if ($i % 10 == 0)
        echo "\n";
    else
        echo "\t";
}


echo "\nFin normal de la aplicacion\n";

?>

Un cordial saludo
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 22:17.