v2.5.2
Giriş yap

Php ile online takibi

kaandenizblkn
681 defa görüntülendi ve 3 kişi tarafından değerlendirildi

Merhabalar. XenForo'daki gibi bir sayaç yapmak istiyorum.
php kullanıyorum. İnternettekiş kaynakların hepsi çöp sistemi yoracak şeyler.
İçeride kaç kişi var gibi bir şey de olabilir
ama önceligim online sayısı bilmek
Bunu daha önce yapan var ise ya da şöyle yapılabilir diyen varsa
fikirlerini bekliyorum...

Cevap yaz
Cevaplar (9)
tayfunerbilen
1160 gün önce

mantık şöyle olabilir, online diye bir tablon olduğunu varsayalım.
diyelim ki bir konunun içerisine girdim, o tabloya benim üye id'mi ve o anki tarihi kaydedeceksin.
eğer ben başka bir yere girersem tablodaki bana ait verileri silip o anki sayfamı ekleyeceksin.
şimdi diyeceksin ki adam çıktı gitti, tabloda kaldı. kalmayacak, online olup olmadığını şöyle belirleyeceksin.
diyelim ki birisi online tablosuna kaydedilmiş, eğer kayıt zamanı 5 dakikadan az ise onu online sayarsın, değilse artık o sayfada değildir başka bir işlem yapmadığı için.
ayrıca mysql'de bir event scheduler ya da php tarafında bir cronjob yazıp günlük olarak 5dk'dan uzun olan kayıtları sildirirsen bu sistemi uzun süre kullanabilirsin.

qplot
1158 gün önce

sıstemı yormak ıstemıyorsan json olarak dosyaya kaydedersın aslında mantık cok basıt kodlamada ıyıysen kolayca yaparsın

değilsen yaparım bir örnek mysql yerıne json olarak kullanacaksın

aydinkeskin
1160 gün önce

@x sende o zaman ona göre işlem yaparsın tarayıcı yoksa session kalmaz sonuçta öyle değilmi
cookie yaparsan online kalır haliyle.
oda olmadı gidersin kontol işlemine saatlik döngüde sorgularsın hala bu session var mı diye vs fikirlerini genişletirsen sorun yaşamazsın.

makifgokce
1161 gün önce

Buradaki örnek işinize yarayabilir.

x
1161 gün önce

@aydinkeskin cogu üye cıkıs yapmadan sayfayı kapatıyor ve hep online kalıcaklar.

kaandenizblkn
1161 gün önce

Cevaplar için teşekkür ederim.ç mantıgını bende biliyorum fakat bana algoritma kod blogu lazım stabil şekilde vcalısan sessionlarla daha
once hiç çalışmadım

aydinkeskin
1161 gün önce

basit düşünelim.
üye tablona sutun açarsın online diyelim.
kişi üye girişi yaparken bu tabloya 1 yaparsın session ile de kontrol ettirirsin.
kişi çıkış yaptığında sütün 0 ile dolduracak şekilde ayarlarsın

select * from uye where online = 1

ersiin
1162 gün önce

online adında veritabanı tablosu

  1. kullanıcıadı
  2. onlineolmazamani

Kullanıcı giriş yaptığında bu veritabanına kullanıcı adı ve online olma zamanı eklenir.
Kullanıcı her sayfa değiştirdiğinde veritabanındaki onlineolmazamani update edilir.
Tabi bunun için bu update işlemi kodu her sayfaya eklenmeli. Her sayfada include edilen dosya varsa ona koymak daha iyi olur.

Online kişileri listeleme sayfası oluşturulur.
Burada, online adındaki veritabanı tablosundaki onlineolmazamani, şuanki zaman değerinden maks 30sn daha eski olanlar listelenir.
30 sn daha eski olanlar ise tablodan silinir.

javascript kullanarak setinterval ile apiye istek atarak çok gerçekçi online bilgisi elde edilir ama hosting küçükse bandwidth sıkıntısı çıkarır.
Umarım işine yarar.

x
1162 gün önce

bende konunun takipcisiyim