(PHP) her sayfa yük sayacı artırmak nasıl?

6 Cevap php

Ben bir kullanıcı bir sitenin X sayfalarını ziyaret olduğunda belli bir eylemin gerçekleşmesi istiyorum

Ben (bir txt dosyası veya db olarak) dışarıdan sayacını saklamak zorunda mı?

Ben her sayfa yük onu artırmak, daha sonra 0 sayacı ayarlamak için bir yol düşünemiyorum. Sayacı her zaman 0'a reset alacağı, ya da ben belirgin bir şey eksik?

6 Cevap

Bu sadece bir tek inceledi kaç sayfa saklamak için $_SESSION veri kullanımı oldukça basit olacaktır.

$_SESSION['pageviews'] = ($_SESSION['pageviews']) ? $_SESSION['pageviews'] + 1 : 1;

Siz kullanıcı ilk sayfasında aldığında bir oturum başlatın ve sonra her zaman kullanıcı reloads / ziyaretler altsayfaları değerini artırmak. Bunu yapmak için başka bir yol, her sayfada bir gizli alan var, ve onun değerini almak, bunu artırmak ve yeni sayfaya göndermektir.

<input type="hidden" value="2" id="blabla" />

Kısa cevap evet, (varsayılan) php bir sıfır hafıza sebat politikası vardır, çünkü dışarıdan bu kurtarmak zorunda olduğunu. Bu temelde bir kez php script hafızasında kalan hiçbir şey yok koşmak anlamına gelir.

Düşük trafik site için basit bir txt dosyası okumak, artım ve yazma düşünmek isteyebilirsiniz. Bir yüksek trafik site için çok basit bir mysql tablo çalışabilir.

Zaten belirleyen bir yol var mı kimin siteyi terk ve başka bir gün geri gelmek bile bir kullanıcı (kullanıcı adı ve şifre gibi) nedir? Yoksa ziyaretçi gördüğü sayfaların takip numarası, ve inceledikleri X. sayfasında özel bir şey yapıyor sadece ilgilendi.

Bu ikinci ise, zaten sayaç saklayabilirsiniz bir oturum değişkeni var.

$_SESSION['views'] = $_SESSION['views'] + 1
if($_SESSION['views'] == x) ...

Basit yöntem PHP'nin session storage kullanmak olacaktır.

session_start();
@$_SESSION['pagecount']++;

PHP otomatik olarak kullanıcıya bir oturum tanımlama gönderir ve şeffaf bu çerez ile ilişkili düz bir dosyada $ _SESSION içeriğini depolar. Eğer gerçekten bu sorun için kendi çözüm rulo gerekmez.

zaten ayarlanmış ise beyanı kontrol etmek eğer bir kullanmak istiyorsunuz;

if( isset($count) )
{
   $count = $count + 1;
}
else
{
   $count = 1;
}

Yüklü bir dosyaya veya veritabanına sayısını yazmak zorunda böylece de URL sayısını koymak için get yöntemini kullanabilirsiniz.