ana sayfa > PHP ve MYSQL, Webmaster Haberler > Websayfamıza Referrer Siteleri Kaydetmek ve Görüntülemek

Websayfamıza Referrer Siteleri Kaydetmek ve Görüntülemek

Çarşamba, 31 May 2006

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

[sql]CREATE TABLE `ref` (
`domain` varchar(255) NOT NULL default ”,
`total` int(255) NOT NULL default ‘1′,
PRIMARY KEY (`domain`)
) TYPE=MyISAM;[/sql]

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)

[php]$conn = mysql_connect(”localhost”,”USERNAME”,”PASSWORD”);
mysql_select_db(DB_ADI) or die(mysql_error());[/php]

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.

[php] 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]'");
}
?> [/php]

Şimdi veritabanındaki kayıtları yani referrer domainleri hitleri ile birlikte çekelim

Bütün hit gönderenler

[php] 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]");
}
?>[/php]

Top10 hit gönderen

[php] $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]“);
}
?>
[/php]

  1. şimdilik yorum yok.
  1. şimdilik geri bağlantı yok