Un sistema que se puede empear tambien sin utilizar cookies o sesiones etc, es utilizar solo base de datos e IP
aqui te dejo un simple codigo de ejemplo, que por supuesto puede ser mucho mas mejorado
Código PHP:
// tipica funcion para sacar la IP
function ip()
{
if (getenv("HTTP_X_FORWARDED_FOR"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else
$ip = getenv("REMOTE_ADDR");
return $ip;
}
/// la conexion esta creada anteriormente
define('ONLINE_TABLE','tabla_online');
define('MAX_TIME',120); // tiempo que actualiza los users online en segundos
//borrarmos todos los users que lleven mas de 2 minutos, (puede ser menos o mas)
$sql = "DELETE FROM ".ONLINE_TABLE." WHERE entrada < ( ".time()." - ".MAX_TIME.") ";
mysql_query($sql) or die (mysql_error());
//entramos los datos a la BDD se entra tb la pagina, por si se quiere hacer con la instrucion necesaria saber los que estan en cada pagina
$sql_insert = "INSERT INTO ".ONLINE_TABLE." (ip,entrada,pagina) VALUES('".ip()."', '".time()."','".$_SERVER['REQUEST_URI']."')";
mysql_query($sql) or die (mysql_error());
$sql = "SELECT * FROM ".ONLINE_TABLE;
$result = mysql_query($sql) or die (mysql_error());
//aqui solo nos da el numero de visitas activas, si se quiere hacer que nos de por paginas, pues se pone la sentencia adecuada al SELECT
$online = mysql_num_rows($result);
echo "users online". $online;
espero que te sirva
Un saludo