Burda sitemize ziyaretçi yollayan sitelerin adreslerini veritabanına kayıt edeceğiz.Daha sonra veritabanından bu kayıtları ve hitlerini görmemizi saglayacağız.Kolları sıvayıp işe başlıyalım;
Alttaki sql sorgusunu phpmyadmin den veritabanına çekin
`domain` varchar(255) NOT NULL DEFAULT '',
`total` int(255) NOT NULL DEFAULT '1′,
PRIMARY KEY (`domain`)
) TYPE=MyISAM;
Veritabanı bağlantı ayarları için ister varolan config.php dosyanıza ekleme yapın, ister ayrı bir config dosyası yaratın yada bağlantıyı kendi config dosyanıza göre ayarlayın(bu son olanı yaparak kayıtları db ye yazacağımız sayfada da değişiklik yapmak zorunda kalıcaksınız)
mysql_select_db(DB_ADI) or die(mysql_error());
config.php olarak kaydedin.
Alttaki kodla sayfamıza refferer olan domaini veritabanındaki yukarda oluşturduğumuz tabloya ekliyeceğiz.Eğer domain veritabanında varsa gönderilen hit 1 artırılacak, yoksa domain kaydı oluşturulacak.
include ("config.php");
$ref = $_SERVER['HTTP_REFERER'];
preg_match("/^(http://)?([^/]+)/i",
"$ref", $matches);
$host = $matches[2];
preg_match("/[^./]+.[^./]+$/", $host, $matches);
$test1 = mysql_query("SELECT * from ref where domain = '$matches[0]'");
$test = mysql_num_rows($test1);
if ($test == 0)
{
$refinsert = mysql_query("INSERT INTO `ref` ( `domain` , `total`)VALUES
('$matches[0]', '1′)");
}
else
{
$update = mysql_query("UPDATE ref set total = total +1 where
domain = '$matches[0]'");
}
?>
Şimdi veritabanındaki kayıtları yani referrer domainleri hitleri ile birlikte çekelim
Bütün hit gönderenler
include ("config.php");
$allref= mysql_query("SELECT * from ref WHERE domain != 'bizimdomainimiz' AND
domain != '' order by total DESC");
while ($ref = mysql_fetch_array($allref))
{
echo ("$ref[domain] – den gelen $ref[total]");
}
?>
Top10 hit gönderen
$gettop = mysql_query("SELECT * from ref WHERE domain != 'bizimdomainimiz' AND
domain != '' order by total DESC LIMIT 10″);
while ($top = mysql_fetch_array($gettop))
{
echo ("
http://$top[domain]" target="_BLANK">$top[domain] den gelen
$top[total]");
}
?>



Yorum Yaz