Merhabalar,
Elimden geldiğince açıklayıcı ve basit bir anlatım yapmaya çalışacağım, hatam olursa şimdiden affola.
Cron olmadan online/offline sistemi yapılabilir. Header'e her istek gittiğinde son aktiviteyi güncellemeniz için bir UPDATE sorgusu yazın. Header içinde bu update sorgusu olacağından kullanıcı her bir yere girip çıktığında son aktivitesi güncellenmiş olacaktır. Şimdi gelelim online/offline göstermeye; online ve offline durumunu gösterdiğiniz yerde tablonuzda ki son_aktiviteyi ele alıp 15 dakikadan eski ise offline değil ise online şeklinde gösterim yapabilirsiniz. Eğer gösterimi tek bir yerde değil, bir çok yerde yapacak iseniz o halde CRON kullanmanız mantıklı olacaktır. Cronlar, zamana bağlı çalışan dosya, fonksiyon ve komut yapılarıdır. Cpanel ve plesk gibi yönetim panellerinden kolayca cron oluşturabilirsiniz. Cronlu olan yöntemde ise online diye bir satır daha açmalısınız veritabanına. 15 dakikada bir çalışacak bir cron dosyası (PHP) oluşturup eğer son_aktivite 15 dakikadan eski ise online değerini 0, 15 dakikadan eski değil ise online değerini 1 yapınız. Şimdi online ve offline gösterimi yapacağınız sayfa ve bölümlerde üyenin veritabanında bulunan online değerini kontrol etmeniz yeterli olacaktır.
Takıldığınız bir nokta olursa, yardımcı olmak isterim
İyi çalışmalar...
ilk maddedeki olay sayfa değiştirdikçe kullanıcı, son aktiviteyi güncelleyerek bu durum yapılabilir. fakat şu cron olayını yinede öğrenmekte fayda var...

dediğin ikisi de mantıklı fakat cron olayı öğrenmem açısından daha doğru gibi...