Circa un mese fa ho dovuto fare una cosa simile. Ho risolto così:
Tabella utenti_online (id_user,ora e data ultimo click)
Nella index.php ho inserito una funzione che cancella dalla tabella tutti i record che hanno superato, ad esempio, i 30 minuti di inattività. Questa stessa funzione aggiorna la data e l'ora dell'utente loggato.
Spero di esserti stato di aiuto.