Merhabalar, blog sitesi oluşturuyorum. Daha önce basit tarzda hit sayaçı yapmıştım.
Veritabanında
blog_hit açarak
blog-detay sayfasında blog_hit++ ile kolayca çözüyordum. Ancak şimdi detaylı bir blog sitesi yaptığım için sayfa yenilediğinde saymasın istiyorum. Nasıl yapabilirim?
PHP PDO ile Sayaç Yapımı
8
●236
- 08-03-2023, 14:51:31Hocama katılıyorum veritabanı için büyük yük olacaktır. Bu değerleri Google Analytics kurulumunu yaparak öğrenmek daha pratik ve hızlı olacaktırphpkoder adlı üyeden alıntı: mesajı görüntüle
- 08-03-2023, 14:56:50her yazıya girildiğinde javascript ile belli bir süre geçerli (örneğin 5dk) storage oluşturabilirsin. yine javascript ile eğer aktif bir storage yoksa ajax ile hit güncelleme isteği atabilirsin.
edit: illa php ile yapmak istiyorsan da session oluşturabilirsin. oluşturduğun session'da her girilen yazının id'sini eklersin. her sayfa yenilediğin zaman da ilgili id'nin session'da olup olmadığına göre hit güncellemesi yaparsın veya yapmazsın. ama bence böyle bir işlemi php tarafında yapıp server'a yük bindirmene gerek yok. javascript ile yaparak daha performanslı bir yapıya sahip olabilirsin - 08-03-2023, 15:07:40Veritabanında yük olmaz şu şekilde yapabilirsin.
session_start(); if ($_SESSION["refresh"] == "0") { $goruntulenme = $baglanti->query("SELECT * FROM sayfagoruntulenme WHERE blogid = $blogid"); $goruntulenmeler = $goruntulenme['goruntulenme']; $goruntulenmeler++; $sayfagoruntulenme = $baglanti->exec("UPDATE `sayfagoruntulenme` SET `goruntulenme` = '$goruntulenmeler' WHERE `sayfagoruntulenme`.`blogid` = $blogid"); $_SESSION['refresh'] = "1"; //Blog idsini çekmen gerekiyor telefondan yazdigim icin yanlislik olmus olabilir bu mantikta yapcaksın yani //Session ile kullaniciyi kaydet veritabanindaki degeri +1 yapsin f5 attiginda ise if ile sorgula eger bu kullanici degeri zaten yükselttiyse tekrar yükseltmesin bu şekilde veritabanında yük yapmaz fakat google analytics ile yapman daha sağlıklı olur nokta atışı görüntülenmeler için. } - 08-03-2023, 16:03:44Dediğiniz google ile yapılmaz.temurtaha adlı üyeden alıntı: mesajı görüntüle
İp kontrolü yaparak sayacı güncelleyebilirsiniz.
veri tabanında bir tablo oluşturun sayac adında.
Siteye girenlerin ip adresini kayıt etsin.
Daha sonra onları sayaç koduna entegre ederek sayacı kontrol edebilirsiniz. - 08-03-2023, 16:31:43Teşekkür ederim. Dediğiniz gibi çözdüm. İhtiyacı olanlar için kısaca anlatayım.ntka adlı üyeden alıntı: mesajı görüntüle
Veritabanında;- say_id
- say_ip
- say_blog_id
$ip=$_SERVER["REMOTE_ADDR"]; $sayacsor= $db->prepare("SELECT * FROM say WHERE say_ip=? AND say_blog_id=?"); $sayacsor->execute(array($ip,$blgd['blog_id'])); if (!$sayacsor->rowCount()) { $ekle=$db->prepare("INSERT INTO say SET say_ip=?, say_blog_id=?"); $insert=$ekle->execute(array($ip,$blgd['blog_id'])); }