Ho fatto una ragionamento per un mio sito mi puoi dare la tua opinione??
(non ho aperto un nuovo 3D perchè non mi sembrava necessario)
Allora io ho agito in questo modo:
Ho creato una tabella status_utenti con campi
id(key, auto_increment)
idut (nick dell'utente)
stato (online,offline,inattivo)
time_stamp (time stamp del momento in cui visita la pagina)
All'iscrizione viene inserito il nick nella tabella e lo stato su offline.
Dato che ho una pagina principale con il layout e a seconda dell'url includo una pagina specifica, ho pensato di mettere un quella pagina il mio scriptino che controlla varie cose.
Codice PHP:
<?
//mi connetto al database
$archivio=mysql_connect("", "", "");
$beta=mysql_select_db("");
//controlli utenti online/offline
$time=time();
//controllo i time stamp di tutte le persone loggate
$select=mysql_query("SELECT * FROM status_utenti");
$row=mysql_num_rows($select);
for ($i=0; $i<$row; $i++){
//prendo il time stamp dell'ultimo click
$time_stamp=mysql_result($select, $i, "time_stamp");
$idut=mysql_result($select, $i, "idut");
//se sono passati più di 5 minuti o uguale dall'ultimo click imposto su inattivo
if ($time_stamp-$time >= 300){
//imposto su inattivo
$upadate=mysql_query("UPDATE status_utenti SET time_stamp='$time', stato='inattivo' WHERE idut='$idut'");
}
else if($time_stamp-$time >= 600){
$upadate=mysql_query("UPDATE status_utenti SET time_stamp='$time', stato='offline' WHERE idut='$idut'");
}
}
?>