Sitenizi ziyaret edenlerin nereden geldiğini HTTP_REFERER ile öğrenmek ve ziyaretçilerin anlık kayıtlarını tutmak

Sitenize ziyaret eden kişilerin kaynağını PHP ortanında öğrenmek $_SERVER dizisindeki HTTP_REFERER değişkeni sayesinde mümkün. Başka sitelerde sitenize link verenler linke tıkladığında aynı zamanda nereden geldiğini HTTP_REFERER ile söylüyor. Bu anahtar değişken sayesinde bir çok ziyaretçi istatistiği tutmak mümkün. Hemen işe başlayalım. Ziyaretçinin bilgilerini tutacak tabloyu veritabanında yaratalım:
CREATE TABLE visitors (
  id int(11) NOT NULL auto_increment,
  visitor_referer varchar(45) collate utf8_bin NOT NULL,
  visitor_ip varchar(18) collate utf8_bin NOT NULL,
  visitor_request_url varchar(100) collate utf8_bin NOT NULL,
  visitor_visit_date date NOT NULL,
  PRIMARY KEY  (id)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_bin ;
Tablodaki alanları kısaca anlatayım:
id : ziyaret id
visitor_referer : sitenize link veren sitenin alan adı
visitor_ip : sitenizi ziyaret eden kişinin ip numarası
visitor_request_url : sitenize yapılan sayfanın URL adresi
visitor_visit_date : ziyaretçinin ziyaret tarihi (2009-08-16 gibi)

PHP scriptimizi yazmadan önce kaydı tablomuza girerken if else kontroluyle HTTP_REFERER değişkenin tanımlanıp tanımlanmadığını kontrol ediyoruz. Bu sayade Sitenize başka bir siteden mi yoksa direk siteye adres satırından girilip girilmediğini anlayabiliriz.
İşte tüm işi yapacak PHP kodumuz:
if ( isset ( $_SERVER['HTTP_REFERER'] ) )
{

// Regular expression ile sitenize link veren sunucunun domain adresini alıyoruz
 preg_match('@^(?:http://)?([^/]+)@i', $_SERVER['HTTP_REFERER'], $matches);
$visitor_referer = $matches[1];
 // Ziyaretçinin ip adresini alıyoruz
$visitor_ip = $_SERVER['REMOTE_ADDR'];
 // İstek yapılan sayfanın adresini alıyoruz
$visitor_request_url =$_SERVER['REQUEST_URI'];
	
// Veritabanına bağlantı yapıyoruz	
$conn=mysql_connect("localhost", "root" ,"");         
mysql_select_db('database',$conn);  

// Bugünkü tarihi kontrol etmek üzere alıyoruz
$today_date=date("Y-m-d");
// Daha önce ziyeretçinin aynı günde aynı ip adresle veya aynı sayfaya istek yapıp yapmadığını   
// burada kontrol ediyoruz. Böylece aynı verileri tekrar girmekten kurtuluyoruz
$sql="select * FROM visitors where (visitor_ip= '$visitor_ip') AND (visitor_visit_date = '$today_date') AND (visitor_referer = '$visitor_referer')";
$result=mysql_query($sql , $conn ); 
$total =mysql_num_rows($result);
 // 0 değilse daha önce bu verinin girilmediğini anlıyoruz
	if ( $total == 0 )	
	{
	$sql="INSERT INTO visitors VALUES ('NEW.id' ,'$visitor_referer','$visitor_ip','$visitor_request_url',NOW())";
	mysql_query($sql,$conn); 
	}

	
}

// Bu kısımda ziyaretçi sitenizi direk olarak ziyaret ettiğinde yapılacak işi yapıyoruz.
// Tek farkı HTTP_REFERER bilgisine direct yazıyoruz. 

else 

{
	
$conn=mysql_connect("localhost", "root" ,"");         
mysql_select_db('database',$conn); 

$visitor_ip = $_SERVER['REMOTE_ADDR'];
$visitor_request_url =$_SERVER['REQUEST_URI'];

$today_date=date("Y-m-d");
$sql="select * FROM visitors where (visitor_ip= '$visitor_ip') AND (visitor_visit_date = '$today_date') AND (visitor_referer = 'direct') ";
$result=mysql_query($sql , $conn ); 
$total =mysql_num_rows($result);

	if ( $total == 0 )	
	{
	$sql="INSERT INTO visitors VALUES ('NEW.id' ,'direct','$visitor_ip','$visitor_request_url',NOW())";
	mysql_query($sql,$conn);
	}
}
   
   
Yaptığım örneği test edip çalıştırdım. Sonuç olarak aşağıdaki resme göz atabilirsiniz.
Sitenizi ziyaret edenlerin nereden geldiğini HTTP_REFERER ile öğrenmek
yazan Zülküf Küçüközer tarih   17th August 2009
primary key words  Ziyaret | Httpreferer | Php | Visitorip okunma  807
secondary key words  Ip | Visitors
Bu yazı hakkında yorum yapılmamış.

Etiketler

| Ansi | Apache | Arama-merkezi | Arama-sonuçları | Asp.net | Class | Google | Html-parse | İlişkisel-veritabanı | Json | Mysql | Normal-formlar | Normalizasyon | Pear-framework | Php | Phpmyadmin | Singleton-patten | Tasarım | Tasarım-şablonu | Türkçe-karakter | Utf | Veritabanı | Xampp |

arama

Loading

sosyal

RSS beslemesine abone ol FriendFeed sayfam Facebook sayfam

reklam