Session ile Veritabanına Sayfa Görüntüleme Sayacı Oluşturma | Avrasyasoft - Web Mühendisliği

Session ile Veritabanına Sayfa Görüntüleme Sayacı Oluşturma

Diyelim ki bir haber sitesi açtınız, ve paylaştığınız haberlerin kaç kere tıklandığını öğrenmek istiyorsunuz. Çok basit bir kod ile, siteye giren ziyaretçilere, belli bir zaman aralığında olmak üzere veritabanına kayıt edebiliriz.

Öncelikle, veritabanınızda bir tablo açın.. Örneğin adı haber olsun ve içerisinde "baslik, icerik, tarih" gibi bölümlerin yanına bir de "hit" adında bir sütun ekleyelim. Aşağıdaki resimi inceleyebilirsiniz.

 

session_start(); //Session başlatıyoruz
if( !isset( $_SESSION["zaman"] ) ){ //Eğer 'zaman' sessionu yoksa,
    $_SESSION["zaman"] = time() + (60*60); //'zaman' sessionumuza süre belirtiyoruz (Örneğin 1 saat)
    if ( !isset( $_SESSION["hit"] ) ){ //Eğer 'hit' sessionu yoksa
        $_SESSION["hit"] = 0; //'hit' session'una 0 değerini veriyoruz
        $u = $db->prepare("UPDATE `haber` SET `hit` = (`hit`+1) WHERE `id` = 1"); //'haber' adlı tablomuzun, id'si 1 olan makalesindeki 'hit' değerine +1 ekliyoruz
        $u->execute();
        $_SESSION["hit"] = $_SESSION["hit"] + 1; //başlangıçta '0' dediğimiz 'hit' sessionunu +1 yapıyoruz
    }
}
if( time() > $_SESSION["zaman"] ) { //Eğer belirttiğimiz zaman dolduysa
    if ($_SESSION["hit"] == 1) { //Eğer 'hit' sessionu 1'e eşitse
    }
    session_destroy(); //Sessionu bitiriyoruz.
}

Yukarıda yaptıklarımızı özet geçecek olursak,

  • 'haber' adında bir tablo oluşturduk ve içerisine 'hit' adında bir bölüm oluşturduk. 'zaman' ve 'hit' adında iki session tanımladık. Çünkü, siteye giren kişilerin sayfayı yenileyerek görüntüleme sayısını arttırmasını istemeyiz.
  • PDO ile 'haber' tablomuzdaki haberin 'hit' değerini +1 arttırdık.
  • 'zaman' sessionu dolduğunda ve 'hit' sessionu 1 olduğunda session_destroy ile sessionu bitirdik.