Foros del Web » Programando para Internet » PHP »

Controlar la salida de una pagina php

Estas en el tema de Controlar la salida de una pagina php en el foro de PHP en Foros del Web. Necesito hacer una insercion en una tabla de una base de datos cuando el usuario cierra una ventana. He conseguido realizarlo haciendo que con el ...
  #1 (permalink)  
Antiguo 03/05/2005, 12:21
 
Fecha de Ingreso: marzo-2003
Mensajes: 7
Antigüedad: 14 años, 9 meses
Puntos: 0
Controlar la salida de una pagina php

Necesito hacer una insercion en una tabla de una base de datos cuando el usuario cierra una ventana. He conseguido realizarlo haciendo que con el evento UNLOAD se llame a una funcion javascript que lo que hace es abrir una pagina php con window.open que ejecuta el codigo y luego la cierra.

Esto funciona bien, excepto que el usuario tenga un bloqueador de popup's, en cuyo caso no hace el window.open y no se ejecuta la pagina.

Es posible realizar esto de alguna otra forma y que funcione siempre.

Gracias por adelantado.
  #2 (permalink)  
Antiguo 04/05/2005, 09:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Para estos casos se suele asumir un pequeño margen de error en tu "salida" (fecha/hora), para ello lo que se suele hacer es registrar constantemente en un campo de tu BD (tabla) de ese usuario que "está en el sistema" .. es decir, a cada iteracción con el servidor, guardas la fecha/hora actual en ese campo para ese usuario.

Para determinar que el usuario "ya no está en el sistema" (por qué cerró su ventana sin salir por tu link de "logout") .. mira esa fecha/hora de ese campo y comparala con la fecha/hora actual; si la diferencia es mayor a X tiempo que determines como "inactividad" .. puedes determinar que el usuario "salió" del sistema (por la puerta de "atras") y registrar ese dato en tu actual campo de "fecha/hora de salida".

Ese tiempo que determines de inactividad .. será tu margen de error máximo en tu fecha/hora de salida del sistema.

Por lo menos de esta forma no dependes de como "salga" tu usuario del sistema .. vs al detalle del margen de error comentado.

Un 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 13:05.