selamlar,

Öncelikle, kullanıcı takibini session ile yap. ancak id ile takip yapma, güvenlik problemi yaratır, bu güvenlik problemi Türkiye'de pek bilinmez (bkz: session hijack)

$_SESSION["istedigin_anahtar_buraya"] = $istedigin_deger_buraya;
Örn: $_SESSION["kullanici"] = "tolga"; dersen, belli bir süre içinde, herhangi bir sayfadan bu değere ulaşabilirsin.

kullanıcı tablon olsun, bir de online kullanıcı için ayrı tablon olsun.
İkinci tabloya online kullanıcıları gir
(id, anahtar(varchar 32), kullanici_id (int 11), time ())
time'da son aktif olduğu saniyeyi hareket ettikçe yenile. Başka bir satır kod {time < 15 dakika önce} leri silsin. anahtarlar, md5 şifreleri olsun, id ile alakalı olabilir, olmayabilir farketmez. Kullanıcı bu tabloda yer aldığı sürece online'dır. Bir fonksiyon belirle, anahtar vasıtasıyla kullanici_id döndürsün ve bunu gerektiği yerde kullansın.

Sen kullanıcı session olarak anahtar'ı kullan. Arada session-paketlerini dinleyen olsa bile, bu anahtarlar md5 şifreleri olacağı için bir çözümleme yapamaz, hijack de yapamaz.

wikipedia ve benzeri makalelerde önerilen budur.

karışık oldu mu?