Ver Mensaje Individual
  #10 (permalink)  
Antiguo 25/03/2010, 16:54
Avatar de neodani
neodani
 
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 2 meses
Puntos: 20
Respuesta: Cómo saber si el usuario está online o no?

Estaba pensando esta idea, a ver que os parece...

Al inicio de cada página se llama a un script
include('users_online.php");

En este script se ejecutará cada vez que un usuario vaya a una página (por lo que ya nos ahorramos el cron y/o las peticiones en ajax), tiene la función de:

Mirar si existe alguna cookie (concretamente la cookie con los datos de usuario y contraseña guardados, ej. "logeado"), si existe el script contabilizará a ese usuario como usuario online y registrado.

Si no existe la cookie (llamada "logeado") significa que el usuario no se ha logeado en la web y esta navegando como invitado, en ese caso se creará la cookie "invitado", el script leerá que la cookie que existe es de invitado y lo contabilizará como usuario invitado.

Este script a su vez comprueba la última actividad, es decir, si el tiempo que dejamos al usuario con el estado logeado es de 1 hora, esto es que hace 1 hora que no ha cambiado de página y por tanto no se ha actualizado el estado de la base de datos. Habrá expirado la cookie, y el campo de la base de datos tendremos que cambiarlo.

Un poco desarrollando las cookie... podría ser una única cookie con un array, esto es posible imagino...

usuario_status[fecha_actual] = fecha de la última vez que se cargó la pagina/script
usuario_status[usuario] = nombre del usuario registrado si tiene
usuario_status[estado] = registrado o invitado


Qué os parece el planteamiento, se aceptan mejoras!

Salu2!