Artık php kodlarına veritabanı bağlantısı yazılması gerektiğini söylememe gerek yoktur sanırım.
CREATE TABLE online (zaman bigint(20) NOT NULL default '0',ip varchar(15) NOT NULL default '')
<?phpfunction GetIP()// kullanıcı ip bulma{if(getenv("HTTP_CLIENT_IP")){$ip = getenv("HTTP_CLIENT_IP");}elseif(getenv("HTTP_X_FORWARDED_FOR")){$ip = getenv("HTTP_X_FORWARDED_FOR");if (strstr($ip, ',')){$tmp = explode (',', $ip); $ip = trim($tmp[0]);}}else{$ip = getenv("REMOTE_ADDR");}return $ip;}$zaman = time(); // O andaki zaman$timeout_suresi = $zaman - 300; // 300 saniye yani 5 dakika kendine göre değiştirebilirsin$guncelleme_suresi = $zaman - 30; // 30 saniye$ip = GetIP(); // Siteye giren kullanıcının ip'si$sorgu = mysql_query("SELECT ip FROM online WHERE ip = '".$ip."' LIMIT 1");$say = mysql_num_rows($sorgu);// Kullanıcının ip'si ile veritabanında kayıt yoksa veritabanına kayıt yapıyoruzif($say < 1){mysql_query("INSERT INTO online (zaman, ip) VALUES ('".$zaman."', '".$ip."')");}else{// Kullanıcının en son online zamanını almak için yukarıdaki sorguyu kullanarak verileri çekiyoruz$veri = mysql_fetch_array($sorgu);// Kullanıcının son online olma süresi güncelleme süresinden küçükse kaydını güncelliyoruzif($veri['zaman'] < $guncelleme_suresi){// Online kaydını güncelliyoruzmysql_query("UPDATE online SET zaman = '".$zaman".' WHERE ip = '".$ip."' LIMIT 1");}}// Timeout süresi dolmuş kullanıcıların kaydını veritabanından siliyoruzmysql_query("DELETE FROM online WHERE zaman < ".$timeout_suresi);$top_sorgu = mysql_query("SELECT * FROM online");// Kaç kullanıcının online olduğunu buluyoruz$toplam_online = mysql_num_rows($top_sorgu);// Kaç kullanıcının online olduğunu ekrana bastırıyoruzecho "$toplam_online kullanıcı şu anda sitede online";?>