
25/03/2010, 16:54
|
 | | | Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 18 años 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! |