si lo se... pero debe de haber algun modo de saberlo no? o como se hacen los contadores online?
Cuando un usuario entra al sitio, se insertan datos como por ejemplo nick, ip etc... en la base de datos de usuarios online más el "time()" de ese momento. (Time() es una función que muestra los segundos que han pasado desde el año 1970 [1 de Enero a las 0:00:00 GTM]) Más información sobre la función time()
http://es.php.net/time.
Entonces, al recargar la pagina, comprueba el "time()" del usuario en la base de datos y lo compara con el actual. Luego realiza el siguiente calculo dependiendo de los segundos asignados por el programador. Por ejemplo, si queremos que cada 20 segundos de inactividad de ese usuario se elimine de la base de datos (Por inactividad damos a entender que no sigue navegando por la pagina o no ha actualizado), realizariamos el siguiente cálculo:
<?php
include("config.php");
$query = mysql_query("SELECT * FROM enlinea");
while ($datos = mysql_fetch_array($query)) { //el bucle hace que se repita la operación para cada entrada de la base de datos
$campotime = $datos['time']; //extraemos el valor del time() de cuando entro en la web
$actual = time(); //extraemos el time() que hay ahora
$pasado = $actual - $campotime; //esta operacion daria los seg. que han pasado desde entonces
if($pasado > 20){ //si han pasado mas de 20 seg. de inactividad...
mysql_query("DELETE FROM enlinea WHERE id='".$datos['id']."'") ; //borramos el usuario en linea
}
}
?>Esto sería el algoritmo del script que simularia un seguimiento en vivo de los usuarios.
Obviamente, si un usuario que
YA HABIA ENTRADO ANTES navega o actualiza la pagina, se actualizaria el campo time con el "time()" que hay en ese momento, de ésta forma si el usuario no muestra inactividad, no se elimine la entrada, pero vamos, con el algoritmo de arriba supongo que has entendido algo el funcionamiento de estos sistemas...
Un saludo.