Bueno aquello fue una pequeña solución, para hacerlo bien creas otra tabla, en ella tendrías
tiempo -> integer
usuario -> varchar
Teoricamente [se me ha pegado la palabrita jejeje] el usuario se loguea, escribes en esa tabla el timestamp + una cantidad de segundos prudencial[esto te lo explico después] y el usuario que se logueó. Esto lo puedes hacer aparte para que lo metas como include en cada una de tus páginas [y de ahí sacas un contador de usuarios online]. Junto en este script mandarías a borras a todo el usuario que no haya estado activo en la cantidad de segundos que te dije antes. El script sería algo como esto
useronline.php
============
<?php
session_start();
//segundos de actividad, en este caso son 5 min
$timeout = 300;
$timestamp = time();
$tiempo = $timestamp + $timeout;
$server = "tu_server";
$user = "tu_user";
$pass = "tu_pass";
$mydb = "tu_bd";
$conn = mysql_connect($server, $user, $pass) or die("No se pudo realizar la conexion con la base de datos...".mysql_error());
mysql_select_db($mydb, $conn);
/*se agrega el usuario, puedes también si ya el usuario está activo actualizar el campo tiempo, no lo hago porque estoy algo apurado*/
mysql_query("INSERT INTO tu_tabla VALUES ('".$tiempo."','".$HTTP_SESSION_VARS['nombre_de_la_session_del_usuario']."')");
/*Borramos los usuarios inactivos, ya sea por apagón, o por falta de conexión u otra cosa*/
mysql_query("DELETE FROM users_online WHERE time < ".$timestamp."");
?>
Ya lo que necesita es modelarlo un poco a tu gusto. Cualquier cosa postea.
Saludos,
Yoandy