Ver Mensaje Individual
  #10 (permalink)  
Antiguo 26/05/2010, 08:29
codelikesdesign
 
Fecha de Ingreso: diciembre-2008
Ubicación: Madrid
Mensajes: 78
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: como mostrar usuarios registrados en linea

Claro, después del login tienes que seguir controlando el CAMPO_DATETIME, pero procurando hacer los menos UPDATES posibles.

Yo utilizo este método con un rango de tiempo de 10 minutos.

En la hoja que contiene los datos de conexión y los datos de sesión del usuario, que está incluida en todas las páginas del sitio hago lo siguiente.

IF CAMPO_DATETIME < DATE THEN
CAMPO_DATETIME = DATE + 10 minutos *Fecha y hora actual + 10 minutos
UPDATE
END IF

De esta manera solo se actualiza como máximo una vez cada 10 minutos por usuario.
Es posible que, en el "peor" de los casos, el usuario abandone la página justo después de actualizar el campo CAMPO_DATETIME, pero solo seguirá mostrádose online durante 10 minutos más... una ridiculez :)

Para mostrar los usuarios online, lo único que tienes que hacer después es generar una consulta a la tabla USUARIOS cuyos valores de la variable CAMPO_DATETIME sean mayores que la fecha y hora actual.

Como ya dije en el post anterior, esto es una adaptación del método empleado en los foros de código abierto phpBB en su versión 2. Si te bajas uno de ellos puedes ver mejor su funcionamiento.
La única diferencia es que en esos foros utilizan un intervalo de 5 minutos, y además, cuando el usuario realiza el UPDATE actualiza un campo de texto con la página actual, que luego utilizan para saber por donde está navegando cada usuario.

saludos :)
__________________
Foro Punk