PHP ile Online Ziyaretcileri Gostermek


Merhaba arkadaşlar, klasik bir ziyaretci sayacı yapımını anlatacağım. Pek iyi sayılır mıyım bilemem hani ama beğeneceğinizi umuyorum 🙂

Online ziyaretci sayacini olusturacagiz dedigim gibi. Şu bilgilere sahip olursak iyi olur hani 🙂

PHP ve oturum bilgileri(sessions)
MySQL

Hadi başlayalım 🙂

Öncelikle bilgilerimizi verilerimizi MySQL ile kaydedecegiz. Yani bilgilerimizi depolayacağız. Bir tablo kullanacağım adi online_ziyaretci olsun.Bu tabloda birisi oturum_id diğeri ise zaman olacak sekilde tablo alanlarim var tabii. SQL kodumuz şu olsun;

CREATE TABLE online_ziyaretci( 
    oturum_id CHAR(100) NOT NULL DEFAULT '', 
    zaman INT(11) NOT NULL DEFAULT '0' 
);

Birazdan aşağıda vereceğim kodu tek dosyada kullanabilirsiniz ya da her yere ayri ayri eklersiniz ki bu yorucu olur. Ben tek dosyayi cekecegim.

Simdi vtb.php adinda bir dosya olusturacagim. Bu dosyada verivatani baglanti bilgilerini saklayacagim. Dahil ettigim her yerde veritabani bilgilerim aktif olacak. Kodlarimiz sunlar olsun.

<?php 
    //veritabani baglantisi saglaniyor 
    $vtb = mysql_connect("localhost","root","") or die("Veritabani sunucusuna baglanilamadi<br />".mysql_error()); 
     
    //veritabani secimi 'ziyaretci' 
    $vts = mysql_select_db("ziyaretci") or die("Veritabani baglantisi saglanamadi<br />".mysql_error()); 
?>

Veritabani bilgilerimizi ayarladik. Simdi sayac.php dosyamizi olusturalim

<?php 
    require("vtb.php");    //Veritabani baglantisi gerekli 
     
    //Oturum basladi mi kontrol et ya da oturumu baslat 
    if(!isset($_SESSION)){ 
        session_start(); 
    } 
     
     
    $oturum_id = session_id();    //oturum_id degiskenini session_id'ye atiyoruz 
     
    $zaman = time();     //zaman degiskeninie time fonksiyonune atiyoruz. 
     
    $zaman_limit = $zaman-600;    //Eger oturum var ise 10 dakika boyunca kalsin. 
      
    $say = mysql_num_rows(mysql_query("SELECT * FROM online_ziyaretci WHERE oturum_id='{$oturum_id}' LIMIT 1")); 
     
    //Eger yok ise bunu sakla 
    //DB oturum zamanini guncelle 
    if($say != 1){ 
        $sql = "INSERT INTO online_ziyaretci VALUES('{$oturum_id}','{$zaman}')"; 
        $sorgu = mysql_query($sql) or die("Hata<br />".mysql_error()); 
    }else{ 
        $sql = "UPDATE online_ziyaretci SET zaman='{$zaman}' WHERE oturum_id='{$oturum_id}'"; 
        $sorgu = mysql_query($sql) or die("Hata<br />".mysql_error()); 
    } 
     
    //Su anda online bulunan ziyaretci sayisini aliyoruz 
    $simdi = mysql_num_rows(mysql_query("SELECT * FROM online_ziyaretci"));  //simdi = online ziyaretci sayisi 
     
    echo 'Online ziyaretci sayisi: ',$simdi; 
     
    //Kontrol asamasina geldik. Oturum 10 dakikadan fazla saklanmissa kontrol et ve sil 
    $oturum_sil = mysql_query("DELETE FROM online_ziyaretci WHERE zaman<'{$zaman_limit}'"); 
     
    //Baglantiyi kapat 
    mysql_close(); 
?>

Hadi biraz aciklayalim;

1: Veritabani baglanti bilgileri icin vtb.php dosyamiz gerekli

2: Oturum basladi mi baslamadi mi kontrol ediyoruz. Baslamadiysa baslatiyoruz

3: oturum_id degiskenini session_id fonksiyonuna atiyoruz

4: Simdiki zamandan 10 dakika cikariyoruz kontrol ediyoruz ya

5: oturum_id ayni ise saklaniyorsa onu sakliyoruz. Zaten vt icinde yer aliyor. VT otomatik zaman guncellemesi yapmali.

6: Tabloda toplam oturum yani ziyaretci sayisini gorecegiz ve yazacagiz yaziyoruz yani

7: Kontrol ediyoruz 10 dakikadan fazla suren oturum var mi diye. Eger var ise otomatik olarak siliyoruz 🙂

Bu kadar kolaydi tesekkurler

Gorusmek uzere 😉

Alıntı

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s