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)
Ş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
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
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
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
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
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
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
Merhaba pisipisi kodlarını yarın müsait bir zamanımda inceleyeceğim.
Beğen (1)
Yorumlar(0)
Yorum Yaz
Gönder
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.