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 '' )
<?php function 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ıyoruz if($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üncelliyoruz if($veri['zaman'] < $guncelleme_suresi){ // Online kaydını güncelliyoruz mysql_query("UPDATE online SET zaman = '".$zaman".' WHERE ip = '".$ip."' LIMIT 1"); } } // Timeout süresi dolmuş kullanıcıların kaydını veritabanından siliyoruz mysql_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ıyoruz echo "$toplam_online kullanıcı şu anda sitede online"; ?>