Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/10/2005, 05:37
Avatar de txus35
txus35
 
Fecha de Ingreso: mayo-2005
Mensajes: 42
Antigüedad: 19 años, 9 meses
Puntos: 0
onBeforeUnload: duración visitas usuarios

Alguien conoce algún sistema para cronometrar la duración exacta de las visitas de la gente que se conecta a un sitio ???
La lógica me pide utilizar el evento "onBeforeUnload" en todas las páginas de mi sitio y llamar a un script de servidor para almacenar la hora cada vez que se activa dicho evento. Teniendo en cuenta que hemos almacenado también la hora en la que el usuario accedió a la web por primera vez (inicio de sesión), podemos restar ambas fechas y obtener el tiempo exacto de la visita. He probado varias cosas y lo más cerca que me quedo es ésto:

----- en todas las páginas del sitio : ---------------
Código PHP:
<? session_start();
.....
/*
código de conexión a la bbdd. A continuación dejamos preparada la SQL en el lado servidor para ser ejecutada desde el cliente:
*/

$SentenciaSql="UPDATE Visitantes SET Date_End ='".time()."' WHERE IdVisitante ='".$_SESSION['idvisitante']."'";
?>
<html>
<head></head>
<body onBeforeUnload="eval("<? echo $result=@mysql_query($SentenciaSql);?>");">
.....
</body>
</html>
--------------------------------------------------
Se graba bien la fecha en la bbdd cuando se pasa de una página a otra del sitio, pero cuando el usuario cierra el navegador o se mueve hacia otra dirección web ajena a nuestro sitio, el evento no se activa y no se produce la grabación.

Si ponemos:
<body onBeforeUnload="alert("adios");">
El evento responde bien a todos los cierres de navegador. El problema parece ser la llamada desde Javascript a scripts de servidor.
Alguien podría abrir luz en este tema ?, Gracias de antemano y saludos a todos.

Última edición por txus35; 02/10/2005 a las 13:23