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.
bu kod sana yol gösterebilir. aylık olarak sql de tuttarsın ay bıtınce jsona atar sqlden sılersın gunluk aylık yıllık vs jsondan okursun
ayrıca bak https://rigorousthemes.com/blog/open-source-google-analytics-alternatives/
$hit_id=$row_alan['a_id'];
if (empty($_SESSION["ahit_{$hit_id}"]) or ($_SESSION["ahit_{$hit_id}"]<time())) { // ONCE SESSIONLA BAKIYORUM OKUMUSMU ADAM BU YAZIYI
$_SESSION["ahit_{$hit_id}"] = time()+86400; // KILIT NOKTA BURASI EĞER ADAM OKUMADIYSA BU BLOGU SESSIONA 86400 SANIYE / 24 SAAT EKLIYORUM
$btip=3; // 1 Blog 2 Etkinlik 3 kamp alanı
// BURADA 2. ESAS KONTROLU YAPIYORUM EGER 24 SAAT ICINDE 2. ZIYARETI ISE ALLTAKI KOD DEVREYE GIRIYOR
$bbak=$ans->prepare("SELECT * FROM hit WHERE h_tip=3 AND h_deger=? AND h_tarih >= NOW() - INTERVAL 1 day AND h_ip=?");
$bbak->execute([$row_alan['a_id'],GetIP()]);
$say_bbak=$bbak->rowCount();
if($say_bbak==0){ // EĞER SESSION DEVREDEN CIKARSA BU KOD KONTROLU YAPIYOR SAYFAYI YENILESEDE IZIN VERMIYOR :)
$byaz=$ans->prepare("INSERT INTO hit (h_tip, h_deger, h_ip) VALUES (?,?,?)");
$byaz->execute([$btip,$row_alan['a_id'],GetIP()]);
$bhit=$ans->prepare("UPDATE alan SET a_hit=a_hit +1 WHERE a_id=?");
$bhit->execute([$row_alan['a_id']]);
}
}