in versione MOLTO semplificata:
Codice PHP:
// Tempo limite che vuoi che vengano visualizzati gli utenti
$time = 300; # 5 minuti
// Tempo attuale
$time_now = time();
/*
* Vostro sistema per controlla se un utente è loggato ( che io non conosco )
* facciamo finta che restituisce l'id e il nickname
*/
// Elimina tutti gli utenti che non si connettono da 5 minuti
$q = mysql_query("DELETE FROM utenti_online WHERE tempo_online < $time_now AND id_utente = $id" );
// Controlla se esiste un record nella tabella utenti_online
$q = mysql_query("SELECT 1 FROM utenti_online WHERE id_utente = $id AND nick_utente = '$nick'");
// Se esiste, aggiorna la tabella e basta
if ( mysql_num_rows( $q ) == 1 )
{
mysql_query("UPDATE utenti_online SET tempo_online = $time WHERE id_utente = $id AND nick_utente = '$nick'");
}
// Altrimenti aggiunge un nuovo record
else
{
mysql_query("INSERT INTO utenti_online ( id_utente , nick_utente , tempo_online ) VALUES ( $id , '$nick' , $time )");
}
// Seleziona tutti gli utenti online
$lista = mysql_query("SELECT id,nick FROM utente_online");
print 'Attualmente sono connessi: ';
// Scorre gli utenti online
while ( $row = mysql_fetch_array( $lista ) )
{
print " [ [url='profilo.php?id=$row[id]']$row[nick][/url] ] ";
}