quando un utente naviga una qualunque pagina del sito (puoi metterlo come include) accedi ad una tabella costruitta apposta nel database e controlli se l'utente è logato e quindi va riconosciuto come utente registrtato, oppure se è un visitatore.

alle prossime aperture di altre pagine da parte dell'utente controlli che il suo IP non sia gia nella tabella degli utenti online (registra l'ip di ogni utente online nella tabella); se c'è gia aggiorni l'orario della sua ultima visita, se non c'è lo inserisci.

in pratica nella tabella ti servono i campi:

id_utente
data_ultima_visita
indirizzo_ip

quando un utente apre una pagina qualunque del sito devi anche controllare che non ci siano record "in time out" in quella tabella. quindi fai un DELETE dei record, ad esempio, più vecchi di 15 minuti che indicano che quell'utente non è più online.

spero di essere stato chiaro....