Ziyaretçi Sayacı: Günlük ve Toplam Hit Takip Sistemi

  • Konbuyu başlatan Konbuyu başlatan irfo
  • Başlangıç tarihi Başlangıç tarihi

irfo

Moderatör
Top Poster Of Month
Katılım
7 Ocak 2026
Mesajlar
290
Tepkime puanı
2
Puanları
18
Bu sistemde her ziyaretçinin IP adresini ve giriş tarihini kaydederek; "Bugün kaç farklı kişi geldi?" ve "Toplamda kaç kişi geldi?" sorularına yanıt bulacağız.

1. Veritabanı Yapısının Hazırlanması​


Öncelikle ziyaret verilerini tutacağımız bir tablo oluşturmalıyız. SQL sekmenize şu kodu yapıştırın:

SQL:
CREATE TABLE ziyaretciler (
id INT AUTO_INCREMENT PRIMARY KEY,
ip_adresi VARCHAR(50),
tarih DATE
);

2. Sayaç Mantığı ve PHP Kodları​


Aşağıdaki kod parçası; önce ziyaretçinin IP'sini alır, bugün bu IP ile giriş yapılıp yapılmadığını kontrol eder, yapılmamışsa yeni bir kayıt oluşturur.

PHP:
<?php
// Veritabanı Bağlantısı (PDO)
$host = "localhost";
$db   = "veritabani_adi";
$user = "kullanici_adi";
$pass = "sifre";

try {
$pdo = new PDO("mysql:host=$host;dbname=$db;charset=utf8", $user, $pass);
} catch (PDOException $e) {
die("Bağlantı hatası: " . $e->getMessage());
}

// 1. Ziyaretçinin IP Adresini Al
$ip = $_SERVER['REMOTE_ADDR'];
$bugun = date("Y-m-d");

// 2. Bu IP bugün daha önce gelmiş mi?
$kontrol = $pdo->prepare("SELECT id FROM ziyaretciler WHERE ip_adresi = ? AND tarih = ?");
$kontrol->execute([$ip, $bugun]);

if ($kontrol->rowCount() == 0) {
// Bugün ilk defa geliyor, kaydet
$ekle = $pdo->prepare("INSERT INTO ziyaretciler (ip_adresi, tarih) VALUES (?, ?)");
$ekle->execute([$ip, $bugun]);
}

// 3. İstatistikleri Çek
// Günlük Tekil Hit
$gunluk_sorgu = $pdo->prepare("SELECT COUNT(id) as toplam FROM ziyaretciler WHERE tarih = ?");
$gunluk_sorgu->execute([$bugun]);
$gunluk_hit = $gunluk_sorgu->fetch(PDO::FETCH_ASSOC)['toplam'];

// Toplam Hit
$toplam_hit = $pdo->query("SELECT COUNT(id) as toplam FROM ziyaretciler")->fetch(PDO::FETCH_ASSOC)['toplam'];

// Ekrana Yazdır
echo "<div>";
echo "<strong>Bugünkü Ziyaretçi:</strong> " . $gunluk_hit . "

";
echo "<strong>Toplam Ziyaretçi:</strong> " . $toplam_hit;
echo "</div>";
?>

3. Gelişmiş Özellikler ve Performans​


Sisteminizi daha profesyonel hale getirmek için şu eklemeleri yapabilirsiniz:


  • [] Proxy Kontrolü: REMOTE_ADDR bazen yanlış IP verebilir (Proxy arkasındaki kullanıcılar). HTTP_X_FORWARDED_FOR kontrolü ekleyerek gerçek IP'yi yakalayabilirsiniz.
    [] Tablo Temizliği: Veritabanının şişmemesi için 30 günden eski kayıtları periyodik olarak silen bir Cron Job komutu oluşturabilirsiniz.
  • Online Ziyaretçi: Son 5 dakika içinde aktif olan IP'leri sayarak "Şu an sitede X kişi var" özelliği ekleyebilirsiniz.

MetrikAçıklamaKullanım Amacı
Tekil ZiyaretçiAynı gün içinde 1 IP = 1 SayımGerçek kullanıcı sayısını ölçer.
Sayfa GörüntülemeHer yenilemede 1 SayımSitenin ne kadar yoğun kullanıldığını ölçer.
Oturum (Session)Kullanıcı siteden ayrılana kadar 1 SayımZiyaret başına geçirilen süreyi analiz eder.

Sonuç​


Kendi sayacınızı yazmak, üçüncü parti araçlara (Google Analytics gibi) bağımlı kalmadan temel verileri sunucunuzda tutmanızı sağlar. Özellikle gizlilik odaklı projelerde ve basit yönetim panellerinde IP bazlı bu sistem oldukça verimlidir.
 
Geri
Üst