Allora, crei una tabella con 2 campi: id, timestamp.
Ogni volta che l'utente effettua il login, inserisci il suo id e il timestamp all'interno della tabella, mentre ogni volta che aggiorna una pagina presente nel tuo sito aggiorni il suo timestamp.
Per eliminare dalla tabella gli utenti inattivi, puoi sempre sfruttare il timestamp.
Eccoti un esempio:
Codice PHP:
<?php
$db = mysql_connect('localhost', '...', '...');
mysql_select_db('...', $db);
$logout = time() - 5 * 60; // gli utenti inattivi per 5 o più minuti verranno cancellati
$id = 2; // l'id, penso dovrai salvarlo e recuperarlo tramite una sessione.
mysql_query('DELETE FROM online WHERE time < ' . $logout);
$q = mysql_query('SELECT * FROM online WHERE id = ' . $id);
if(mysql_num_rows($q) == 1) {
mysql_query('UPDATE online SET time = ' . time() . ' WHERE id = ' . $id);
} else {
mysql_query('INSERT INTO online(id, time) VALUES (' . $id . ', ' . time() . ')');
}
$q = mysql_query('SELECT * FROM online ORDER BY id DESC');
while($r = mysql_fetch_assoc($q)) {
echo $r['id'], ' | Ultima azione: ', date('H:i:s d/m/y', $r['time']), "<br>";
}
mysql_close($db);
?>