David M. Boren
Hectopat
- Katılım
- 12 Haziran 2016
- Mesajlar
- 61
Daha fazla
- Cinsiyet
- Erkek
Merhabalar,
Web sitesini ziyaret eden toplam kullanıcı sayısını tespit edecek bir sayaç oluşturmak istiyorum.
Kullanıcıların IP adresini bir tabloya kaydedip, eğer kullanıcının tabloda IP'si yoksa yani ilk defa girdiyse, onun IP'sini tabloya ekleyip sayacı da 1 artırmak istiyorum. Bunun nasıl olduğunu araştırdım ve bu siteye rastladım. Ama burada MySQL sürümü var ben bunu postun sonundaki gibi PDO'ya uygun şekilde değiştirdim. Ama çalışmadı bir türlü! Önereceğiniz bir şeyler var mı?
Web sitesini ziyaret eden toplam kullanıcı sayısını tespit edecek bir sayaç oluşturmak istiyorum.
Kullanıcıların IP adresini bir tabloya kaydedip, eğer kullanıcının tabloda IP'si yoksa yani ilk defa girdiyse, onun IP'sini tabloya ekleyip sayacı da 1 artırmak istiyorum. Bunun nasıl olduğunu araştırdım ve bu siteye rastladım. Ama burada MySQL sürümü var ben bunu postun sonundaki gibi PDO'ya uygun şekilde değiştirdim. Ama çalışmadı bir türlü! Önereceğiniz bir şeyler var mı?
PHP:
<?php
try{
$db = new PDO('mysql:host=localhost;dbname=deneme;charset=utf8','root','');
} catch(PDOException $e){
echo 'Hata: '.$e->getMessage();
}
function sayac(){
global $db;
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
$tarih = time();
$sonuc = $db->prepare("SELECT Count(ip) FROM ip_tablo WHERE ip= ?");
$sonuc->execute(array(
$ip
));
$sayi = $sonuc->fetchColumn();
if($sayi ==0){
$ekle = $db->prepare("INSERT INTO ip_tablom SET
ip = ?,
zaman = ?");
$insert = $ekle->execute(array(
$ip, $tarih,
));
$guncelle = $db->prepare("UPDATE sayac_tablom SET tekil_hit=?, cogul_hit =? WHERE id = ?");
$guncelle->execute(array('(tekil_hit+1)','(cogul_hit+1)','1'));
}else{
$guncelle = $db->prepare("UPDATE sayac_tablom SET cogul_hit=? WHERE id = ?");
$guncelle->execute(array('(cogul_hit+1)','1'));
}
$sonuc2 = $db->prepare("SELECT tekil_hit, cogul_hit FROM sayac_tablom WHERE id= ?");
$sonuc->execute(array(
'1'
));
$satir=$sonuc2->fetch();
echo 'Toplam Tekil Hit: <strong>'.$satir['tekil_hit'].'</strong><br>';
echo 'Toplam Çoğul Hit: <strong>'.$satir['cogul_hit'].'</strong><br>';
}
?>
<?php sayac(); ?>