Çevrimiçi Üyeleri Listeleme

PHP ile sisteme giriş yapmış üyelerin online olup olmadığını görmeye yarayan bir çalışma yapalım.

PHP ile sisteme giriş yapmış üyelerin online olup olmadığını görmeye yarayan bir çalışma yapalım.

Kendi projeme de uyguladığım bu yöntem, üstünde biraz daha çalışılarak daha iyi sonuçlar elde edilebilir.

Üyelerimizin bulunduğu tabloya nu_statu adında bir sütun oluşturun, tur int yapın. Uzunluk önemli değil.


$om = mysql_query("select * from uyeler where nu_statu = '1'"); //burada uyeler tablosunda nu_statu ' u bir olan verileri cekiyoruz.

    

    while ($qq = mysql_fetch_array($om)) {

        

        $us = $qq ['username'];

        

        echo "$us <br />";

    }



Şimdi bu kod sadece 1 olanları listeler, üye sisteme giriş yaptı ama, nasil '1' olacak değer? Bunun için ise cookie ve mysql update kullanacağız ve giriş yaptığında kullanıcı nu_statu 1 çıkacak ve online olacak. Çıkış işleminde ise cookie verdiğimiz kullanıcı adı sayesinde veri tabanında cookie'deki ismin nu_statu'sünü sıfır yapacağız.

Giriş İşlemi ::

Burada giriş sayfasından gelen textbox'ları giris_kontrol.php'de değişkenlere atadık.


$username = mysql_real_escape_string($_POST['account_text']);

$password = md5(mysql_real_escape_string($_POST['password_text']));



Kullanıcı doğru giriş yapmışsa aşağıdaki kodları uygun yere yazınız.
Uygun yere yazınız ile kastım, yani kullanıcı bilgilerini if ile kontrol eder, yanlışa şu mesajı versin, doğru ise şu mesajı versin olayının doğru ise kısmına yazınız :)

Bu koda cookie belirledik ve üye doğru giriş yaptığı için nu_statu tablesini güncelleyip 1 yaptık.


mysql_query("update uyeler set nu_statu = '1' where username = '".$username."'"); 

setcookie("kullanici", "$username", time()+3600);



Cıkıs Uygulaması:

Sistemden çıkış yaparken yine aynı şekilde mysql'i update ederek çıkıyoruz.


$kullanici = $_COOKIE['kullanici'];

    mysql_query("update uyeler set nu_statu = '0' where username = '".$kullanici."'");

    echo "Basariyla cikis yaptiniz $kullanici.";

    setcookie("kullanici", time()-3600);




İyi kötü yorumlarınızı bekliyorum. Kodun daha iyi halini yapan varsa paylaşsın. Şimdiden teşekkürler...
  • Etiketler;
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Teşekkürler güzel bir anlatım. Ya cookie lerle ara iyiyse ayrı bir ders olarak atabilirmisin :)
su siralar inceledigim makale ve projelerde uyelik bolumleri icin session kullanmislar .
$om = mysql_query("select * from uyeler where nu_statu = '1'"); //burada uyeler tablosunda nu_statu ' u bir olan verileri cekiyoruz. while ($qq = mysql_fetch_array($om)) { $us = $qq ['username']; if(empty($us)){echo"Çevrimiçi üye yok" } else { echo "$us <br />"; } } gibi if else şartı eklerseniz üye yokken çevrimiçi üye yok diye yazabilir. gayet basit ve güzel olmuş eline sağlık.
bence de guzel olmus temel algoritma db de kullanici bilgilerinin tutuldugu yere ekstradan log diye bir field acilip daha sonra kullanici basarili giris yaptigi anda db ye gidip log degerini 1 yapsin ve daha sonra kullanici online uyeleri goster dediginde hemen db den log degeri 1 olanlari goruntule diye bir sql ifade girile bilir ... Eger cikis yaparsa cikis.php ye git orada mevcut kullanici log degerini 0 yap sonra da session veya cookie ne ise onu sifirla cik ... Bence de cok guzel olmus hocam tesekkurler ... :sasir:
Arkadaşlar Cookie ler eğer sayfa kapatılırsa durur yerinde ve orda verdiğin 1 saatlik süre doluncaya kadar online gösterir buda bize sağlıklı bir bilgi vermez şöyle bir çözüm olabilir her cookie yenilendiğinde time ile oraya zamanı kaydeder daha sonra nu_statu kısmına 1 yazacagımıza time yazarsak daha sonra güncel time den çıkartılarak kalana göre daha net sonuç alabiliriz istersek 60 saniye istersek 120 saniye ile kontrol edebiliriz. eğer gereğinden fazla açıklama yaptıysam üstadlarım Var burda Kusura bakmasınlar...
evet mantık güzel ve basit ama üyeler sürekli oturum açıp oturumu kapatmadan tarayıcıyı kaparsalar bu şekilde oturumlar hep açık kalcak hadi dielim oturumu açarken zaman ile belli bir süre sonrasına kadar açık olarak kabul ettiriyoruz sitede mesaj muhabbeti falan varsa o eleman çıksa da diğer üyeler süre dolana kadar onu çevrimiçi olarak görecekler. aslında benim istediğim şey online olarak girenleri hemen gösteren oturum düştüğü yada tarayıcı kapanadığı anda veritabanınında otomatik olarka yada bir tetikleme ile ofline olması.bu asp de application nesnesi ile oluodu galba ama tam hatırlamıyorum.sonuçta php de sunucu tabanlı bi dil kullanıcılar çalıştırmasada oturumun düşme anına bir tetikleme yazabilirmiyiz ki direk gidip veritabanındaki alanı offline yapsın. teşekkürler.

Yukarı Git