Se ti fa piacere ho fatto uno scriptino che lo devi includere in ogni pagina e controlla gli utenti online, inattivi e offline con le sessioni e una tabella status_utenti, io te lo posto poi se vuoi usarlo fai pure =)
Codice PHP:
<?php
//controlli utenti online/offline
session_start();
$archivio=mysql_connect("http://projectphp.altervista.org", "projectphp", "narutologin");
$beta=mysql_select_db("my_projectphp");
$time=time();
//controlli per l'utente connesso
$nick_sess=$_SESSION['nick'];
if (!empty($nick_sess)){
$query=mysql_query("SELECT * FROM status_utenti WHERE idut='$nick_sess'");
//se non è inserito lo inserisco
if (mysql_num_rows($query) == 0){
$insert=mysql_query("INSERT INTO status_utenti (idut,time_stamp,stato) VALUES ('$nick_sess','$time','online')");
}
else{
//se è inserito aggiorno il suo timestamp
$query=mysql_query("UPDATE status_utenti SET stato='online', time_stamp='$time' WHERE idut='$nick_sess'");
}
}
//controlli per tutti gli utenti
$res = $time-600;
//cancello gli utenti che hanno superato i 10 minuti di inattività
$query=mysql_query("DELETE FROM status_utenti WHERE time_stamp<$res");
//imposto su inattivi quelli che hanno superato di 5 minuti
$res= $time-300;
$query=mysql_query("UPDATE status_utenti SET stato='inattivo' WHERE time_stamp<$res");
?>
naturalmente più utenti ci sono sul sito che navigano più la tabella status_utenti è aggiornata.
Si divide in 2 fasi lqa prima quella deti controlli dell'utente loggato con la sessione che avviene solo se c'è un utente la seconda è quella che avviene con qualunque persona che apre quella pagina, con 2 query modifico il database.
Naturalmente al login devi inserirlo nella tabella con timestamp e tutto!
Ciao