Ziyaretçi Verilerini Nasıl Tutabilirim?
Merhaba PT Sakinleri.
PHP tabanlı yazmış olduğum bir web sitesi var. Ziyaretçi verilerini tutmak ve yönetim panelinde göstermek istiyorum.
Google Analytics kullanamıyorum çünkü bu web sitesini birden çok kişi bir birinden bağımsız olarak kullanacak. Yani her site için hesap oluşturmak gerekecek bu durumda ki iş yükü ve takip zorunluluğu gerektirecek bu durum. Bu sebepten dışa bağımsız kendi içinde çalışan bir eklenti veya sisteme ihtiyacım var.
Olması Gereken Özellikler
— Anlık aktif ziyaretçi sayısını görme.
— Günlük, haftalık, aylık, yıllık ve tüm zamanlarda gerçekleşmiş ziyaretçi sayısını görme.
— Veritabanı kullanmadan çalışması (Veritabanını şişmemesi için).
— Aynı ziyaretçiyi gezdiği her sayfa için birden çok kez saymaması.
Olsa Güzel Olur Ama Olmasada Olur Özellikler
— Ziyaretçinin gezdiği sayfaların tutulması.
— Oturum süresinin tutulması.
— Haftalık, aylık, yıllık ziyaretçi sayısını grafik olarak gün içinde kaç kişi ziyaret etmiş şeklinde gösterimi.
— Masaüstü ve mobil ziyaretçi ayrımı.
— Tarih aralığı ile ziyaretçi grafiği görüntüleyebilme.
— Siteye üye ve üye olmayan ziyaretçi bilgisi.
Merhaba,
Bu görev için birçok çözüm mevcut. Önerebileceğim birkaç yöntem şunlardır:
PHP ve JavaScript kullanarak özel bir istatistik sayfası oluşturmak: Bu yöntemde, PHP sayfasından JavaScript fonksiyonları çağırarak anlık aktif ziyaretçi sayısını ve geçmiş ziyaretçi sayılarını takip edebilirsiniz. Örneğin, bir JavaScript sayacı oluşturarak her sayfa yüklemesinde sayacı artırabilir ve PHP sayfasından bu sayaç değerini okuyarak ziyaretçi sayısını takip edebilirsiniz. Bununla birlikte, aynı ziyaretçiyi birden çok kez saymamak için ziyaretçinin tarayıcısına bir cookie yerleştirebilir ve PHP sayfasından bu cookie değerini kontrol ederek aynı ziyaretçinin tekrar sayılmamasını sağlayabilirsiniz. Bu yöntem veritabanı kullanımını gerektirmez, ancak verileri saklama ve tarih aralıklarına göre görüntüleme gibi işlemleri yapmak için bir yöntem bulmanız gerekebilir.
PHP istatistik eklentileri kullanarak bir istatistik sayfası oluşturmak: Bu yöntemde, PHP sayfasına bir istatistik eklentisi ekleyerek anlık aktif ziyaretçi sayısını ve geçmiş ziyaretçi sayılarını takip edebilirsiniz. Örneğin, "PHP Web Counter" adlı bir eklenti kullanarak veritabanına ziyaretçi bilgilerini kaydedebilir ve bu verileri daha sonra görüntüleyebilirsiniz. Bu yöntem veritabanı kullanımını gerektirir, ancak daha gelişmiş özellikleri (örneğin, ziyaretçinin gezdiği sayfaların tutulması, oturum süresinin tutulması, masaüstü ve mobil ziyaretçi ayrımı) daha kolay bir şekilde gerçekleştirebilirsiniz.
Örnek bir PHP kod parçacığı aşağıdaki gibidir:
// Ziyaretçi sayacını artır
$counter_file = "counter.txt";
$f = fopen($counter_file, "r");
$counter = fread($f, filesize($counter_file));
fclose($f);
$counter++;
$f = fopen($counter_file, "w");
fwrite($f, $counter);
fclose($f);
// Ziyaretçi bilgilerini kaydet
$visitor_ip = $_SERVER['REMOTE_ADDR'];
$visitor_time = time();
$visitor_agent = $_SERVER['HTTP_USER_AGENT'];
$visitor_data = array(
'ip' => $visitor_ip,
'time' => $visitor_time,
'agent' => $visitor_agent
);
// Veritabanına ziyaretçi bilgilerini kaydet
$db = new mysqli("localhost", "username", "password", "database_name");
$query = "INSERT INTO visitors (ip, time, agent) VALUES (?, ?, ?)";
$stmt = $db->prepare($query);
$stmt->bind_param("sis", $visitor_ip, $visitor_time, $visitor_agent);
$stmt->execute();
// Ziyaretçi sayısını görüntüle
echo "Anlık ziyaretçi sayısı: " . $counter;
// Geçmiş ziyaretçi sayısını görüntüle
$query = "SELECT COUNT(*) FROM visitors";
$result = $db->query($query);
$num_visitors = $result->fetch_row()[0];
echo "Toplam ziyaretçi sayısı: " . $num_visitors;
// Ziyaretçi bilgilerini görüntüle
$query = "SELECT * FROM visitors ORDER BY time DESC LIMIT 10";
$result = $db->query($query);
while ($row = $result->fetch_assoc()) {
echo "IP: " . $row['ip'] . ", Zaman: " . $row['time'] . ", Tarayıcı: " . $row['agent'];
}
$db->close();
Bu kod, ziyaretçi sayacını artırarak anlık ziyaretçi sayısını takip eder ve veritabanına ziyaretçi bilgilerini kaydeder. Ayrıca, veritabanından geçmiş ziyaretçi sayısını ve son 10 ziyaretçinin bilgilerini görüntüler.
Bu kod sadece bir örnek ve kendi ihtiyaçlarınıza göre düzenlemek gerekebilir. Örneğin, aynı ziyaretçiyi birden çok kez saymamak için cookie kullanımını da düşünebilirsiniz. Ayrıca, istediğiniz tarih aralıklarına göre ziyaretçi sayısını görüntülemek için veritabanı sorgularını değiştirebilir ve ziyaretçinin gezdiği sayfaları, oturum süresini ve diğer özellikleri de tutmak için veritabanına ek kolonlar ekleyebilirsiniz.
Bu kodu kullanarak, önerdiğim özelliklerin çoğunu gerçekleştirebilirsiniz. Ancak, özelliklerin tamamını gerçekleştirmek için kodu daha da geliştirmek veya farklı bir çözüm kullanmak gerekebilir.
Umarım bu bilgiler yardımcı olmuştur.