sdfg
  • sdfg
  • 7 yıl önce sordu
  • Php ile çevrimiçi üyeler listeleme nasıl yapabilirim ?

    Merhaba arkadaşlar php ile çevrimiçi üyeleri nasıl listeleyebilirim?
    Cevaplar(9)
    ismail
  • ismail
  • 7 yıl önce Cevapladı
  • Şu şekilde bir şey yapabilirsiniz: Veritabanında uye_online diye bir sütun oluştur ve üye giriş yaptığında o sütunu 1 olarak güncelle çıkış yaptığında da 0 olarak güncelle.Sonra veritabanından çekersin eğer uye_online 1 olursa çevrimiçi 0 olursa çevrimdışı diye bir şey yaparsın.
    Beğen (3) Yorumlar(0) Yorum Yaz
    Gönder
    burak2yilmaz
  • burak2yilmaz
  • 7 yıl önce Cevapladı
  • Eksik bilgi mevcut. Şöyle ki verdiğiniz örnekte kullanıcı çıkış yapmadan siteyi terk edebilir. Bu sebepten dolayı sürekli online gözükecektir. Bunu aşmanın mantığı da şu şekildedir: Oluşturulan veri tabanına zaman parametresi atanır. Kullanıcının her hareketinde bu zamanlama güncellenir. Cron job yapılarak bu veri tabanında ki veriler kontrol ettirilir. Atıyorum 2 dk önce son güncellemesi olan kullanıcı sistemden otomatik çıkış yaptırılmış olunur. Bu sayede bu sorun aşılabillir ;)
    Beğen (3) Yorumlar(0) Yorum Yaz
    Gönder
    ismail
  • ismail
  • 7 yıl önce Cevapladı
  • Açıkçası ben çevrimiçi üyeler sistemini bu siteye yapmayı düşünüyordum ama sizinde bahsettiğiniz çıkış yapmadan tarayıcı kapatma olayından dolayı yapmamıştım.Birde her harekette veri tabanını güncellemek performans açısından sıkıntı çıkarmaz mı?
    Beğen (2) Yorumlar(0) Yorum Yaz
    Gönder
    burak2yilmaz
  • burak2yilmaz
  • 7 yıl önce Cevapladı
  • Sonuç olarak basit bir sorgu işlemi yapılacak. Tabloda direk üyenin bağlantı sütununa gidip, o satırı güncelleyecek. Cronda sürekli silme işlemi yapacağı için şişme vesaire olacağını düşünmüyorum. Hep böyle yapılır :)
    Beğen (3) Yorumlar(0) Yorum Yaz
    Gönder
    ismail
  • ismail
  • 7 yıl önce Cevapladı
  • Birde ben session ile düşündüm yapmayı.Sonuçta kullanıcı siteden ne şekilde olursa olsun çıkınca session silinmiyor mu? Eğer session silinirse o kullanıcının çevrimiçi durumu güncellenir gibi yapılabilir mi sizce?
    Beğen (2) Yorumlar(0) Yorum Yaz
    Gönder
    burak2yilmaz
  • burak2yilmaz
  • 7 yıl önce Cevapladı
  • Session silindiğinde, server tarafına bilgi iletimi olmaz ki. Bu sebepten dolayı böyle bir kontrol işlemi gerçekleştiriliyor. Kullanıcı çıkış yapmadan, direk sekmeyi kapatırsa session_destroy bilgisi servere ulaştırılamaz.
    Beğen (3) Yorumlar(0) Yorum Yaz
    Gönder
    pisipisi
  • pisipisi
  • 7 yıl önce Cevapladı
  • Arkadaşlar ben bu işlemi session ile yapmıştım, Eğer kulanıcı sitede örneğin 5 dakika hareketsiz kalırsa otomatikmen çevrim dışı görünüyor, ama herhangi bir yeri tıklayınca veri tabanındaki kullanici_zaman stununu sıfırliyor, Kodlara bakarsanız anlarsınız.

    Yazılım Soru - Kod Kısmı

    <?php include 'header.php'; islemkontrol(); $kullanicisor=$db->prepare("SELECT * FROM kullanici ORDER BY kullanici_sonzaman DESC"); $kullanicisor->execute(); ?> <!DOCTYPE html> <html> <head> <title>Online Kullanıcılar</title> </head> <body class="w3-light-grey"> <script type="text/javascript"> $(document).ready(function() { $('#example').DataTable(); } ); </script> <h3>Online Üyeler</h3> <table id="example" class="table table-striped table-bordered" style="width:100%"> <thead> <tr class="w3-blue-gray"> <th>Nick</th> <th>Vip</th> <th>Son Giriş</th> <th>Durum</th> </tr> </thead> <tbody> <?php while($kullanicicek=$kullanicisor->fetch(PDO::FETCH_ASSOC)) {?> <tr> <td><?php echo $kullanicicek['kullanici_nick'] ?></td> <td><?php echo $kullanicicek['kullanici_vip'] ?></td> <td><?php echo $kullanicicek['kullanici_sonzaman'] ?></td> <td><?php $kullanici_sonzaman= strtotime($kullanicicek['kullanici_sonzaman']); $suan=time(); $fark=($suan-$kullanici_sonzaman); if ($fark<1200) {?> <img src="img/online.gif" style="width: 60px; height: 25px"> <?php } else {?> <i class="fa fa-circle" style="font-size:18px;color:red"> Offline</i> <?php } ?></td> </tr> <?php } ?> </tbody> </table> </body> </html> <?php include 'footer.php'; ?>

    Header.php

    Yazılım Soru - Kod Kısmı

    <?php ob_start(); session_start(); include 'islem/baglan.php'; include 'fonksiyon.php'; if (basename($_SERVER['PHP_SELF'])==basename(__FILE__)) { exit("Bu Sayfaya Erişim Yasak"); } //echo "Bağlantı Başarılı"; $kullanicisor=$db->prepare("SELECT * FROM kullanici where kullanici_nick=:nick"); $kullanicisor->execute(array( 'nick' => $_SESSION['userkullanici_nick'] )); $say=$kullanicisor->rowCount(); $kullanicicek=$kullanicisor->fetch(PDO::FETCH_ASSOC); if (!isset($_SESSION['userkullanici_id'])) { $_SESSION['userkullanici_id']=$kullanicicek['kullanici_id']; } $kullanici_sonzaman= $_SESSION['userkullanici_sonzaman']; $suan=time(); $fark=($suan-$kullanici_sonzaman); if ($fark>1200) { $zamanguncelle=$db->prepare("UPDATE kullanici SET kullanici_sonzaman=:kullanici_sonzaman WHERE kullanici_id={$_SESSION['userkullanici_id']}"); $update=$zamanguncelle->execute(array( 'kullanici_sonzaman' => date("Y-m-d H:i:s") )); $kullanici_sonzaman= $_SESSION['userkullanici_sonzaman']; } ?>

    Beğen (1) Yorumlar(0) Yorum Yaz
    Gönder
    ismail
  • ismail
  • 7 yıl önce Cevapladı
  • Merhaba pisipisi kodlarını yarın müsait bir zamanımda inceleyeceğim.
    Beğen (1) Yorumlar(0) Yorum Yaz
    Gönder
    ismail
  • ismail
  • 7 yıl önce Cevapladı
  • pisipisi hocam kodları tekrardan yollayabilir misiniz?
    Beğen (1) Yorumlar(0) Yorum Yaz
    Gönder

    Cevap yazabilmek için Giriş yapmalısınız.Giriş yapmak için buraya Tıklayın.

    Kodlarınızı aşağıdaki alana yapıştırın.

  • Kod Ekle İptal Et
  • Üyeler
    Blog
    Hakkında
    Lab
    Gece Modu
    Giriş Yap
    Kayıt Ol
  • Giriş Yap
  • Şifremi unuttum
  • Kayıt olmak için tıklayın!