¿Por sesiones y cookies? ¡Qué poco recomendable! De seguro no eres un Humano, hacerse el inteligente es fácil mi querido amigo.
La forma en que yo lo haría sería:
Crear un campo en la tabla de usuarios llamado "last_conn" y enviar (vía js y php, claro) un registro con time() cada 30 segundos. Y hago que el script de mostrar usuarios conectados muestre los usuarios con un campo "last_conn" mayores que un time (actual) - 60. No sé si me entendiste
Me gustaria saber porque actualizas cada equis segundos. Supongo que sera para ver si esta activo o no. Supongo que seria para ver si esta activo, ¿No? Es decir, si el tiempo transcurrido=(hora actual)-(hora de conexion en linea) y si esto es >= que equis segundos, pues el usuario se desconecta.
¿Esa es la idea?
PD: Gracias a los dos por contestar.
Lo que si me gustaria añadir y es que si tengo la sesiones para que me caduquen a los 15 minutos de inactividad, es decir, que de destruya la session y salga de la pagina, ¿Vale la pena caducar la inactividad en linea del usuario? Porque se entiende de que si no esta activo en la pagina a los 15 minutos la session se cerrara y en el div de usuarios en linea aparecera como usuario desconectado.
De todas formas me gusta que comenten para solventar las dudas.
Saludos y gracias.