Online Ziyaretçi Sayacı

2008-02-18 23:52:00

Site içinde şu kadar ziyaretçi geziniyor ibaresini görüyor, benim sitemde neden böyle bir şey yok deyip yakınıyorsunuz. Üzülmeyin siz de yapabilirsiniz hem de bedava... Reklam gibi oldu biraz değil mi? O zaman buyrunOnline Ziyaretçi SayacıVeritabanımıza bağlantı kurulduğunu varsayarak
işlem yapıyoruz. Ben kendi sitemde bir nevi istatistiklerimi tutuyorum. Bu yüzden IP kaydediyorum. Bu işlemler daha pratik yapılabilir. Fonksiyon şeklinde yazdığımdan sitenizde ziyaretçilerin gezmesine izin verdiğiniz her sayfaya online(); şeklinde ekleyebilirsiniz.

      Author:Ahmet Tombak

     info@ahmettombak.net

     15 Feb 2008 

function online()
{
$ses=session_id();
$tarih=time();

$outtime=$tarih-10*60;


Zaman bilgisini aldık

Sayfada kalma süresini 10 dakika olarak ayarladım

Siz süreyi saniye cinsinden ayarlayabilirsiniz


$sql="SELECT id,ses FROM online WHERE ses='$ses' ";
$sorgu=mysql_query($sql);



Session id'mizi kontrol ederek site içinde olup olmadığını

kontrol ediyoruz


if(!mysql_affected_rows())
nbsp;{
$ip=$_SERVER[REMOTE_ADDR];
$sql="INSERT INTO online (id,ses,ip,tarih,online) VALUES (NULL,'$ses','$ip','$tarih','yes') ";
$sorgu=mysql_query($sql);

}


Siteye ilk defa giriliyorsa kayıt edeceğimiz bilgileri giriyoruz 


else {
$sql="UPDATE online SET tarih='$tarih',online='yes' WHERE ses='$ses' ";
$sorgu=mysql_query($sql);
 
}

Bu sorgu çalışmışsa zaten site içindeyiz demektir.

Tarihi ve site içinde kalma süresini güncelledik



$sql="SELECT id FROM online WHERE online='yes'
AND tarih<'$outtime' ";
$d=mysql_query($sql) ;
while($so=mysql_fetch_object($d))
{
$sqlim="UPDATE  online SET online='no' WHERE id='$so->id' AND ses!='$ses' ";


Site içinde olup da 10 dakikadır aktif olmayan kullanıcıların sessionlarını kapattık

mysql_query($sqlim);
}
 

$sql="SELECT COUNT(id) FROM online WHERE online='yes' ";
$d=mysql_query($sql);
$aktif_ziyaretci=mysql_result($d,0);

$sql="SELECT DISTINCT ip FROM online  ";
$d=mysql_query($sql);
$tekil_ziyaretci=mysql_num_rows($d);


Yukardaki iki sorguda halen site içinde dolaşan aktif ziyaretçi sayısını

ve farklı IP'ye sahip bilgisayarlardan kaç giriş yapıldığını buluyoruz 

return $aktif_ziyaretci."|".$tekil_ziyaretci;

//Bu satırdaki veriler isteğe göre değiştirilebilir

}

Veri tabanımız şu şekilde



CREATE TABLE `sayac` (

`id` bigint(20) NOT NULL auto_increment,

`ses` varchar(60) NOT NULL,

`ip` varchar(20) NOT NULL,

`tarih` bigint(20) NOT NULL,

`online` varchar(10) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8



Bu makale 278 kere okunmuş.


Bu yazıya henüz yorum yapılmamış. İlk yorum yapan siz olun

Adınız Soyadınız (* gerekli)

e-mail (* gerekli -gösterilmez-)

Güvenlik Kodu (* gerekli )

Yorumunuz