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 ) == )
{
     
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] ] ";