lostyazilim
tr.link

Online/Offline ile ilgli bu sorunu nasıl çözebilirim?

7 Mesajlar 1.011 Okunma
lstbozum
tr.link

101222 101222 WM Aracı Anonim Üyelik
  • Üyelik 22.01.2019
  • Yaş/Cinsiyet - /
  • Meslek
  • Konum
  • Ad Soyad ** **
  • Mesajlar 257
  • Beğeniler 68 / 43
  • Ticaret 0, (%0)
Kullanici sisteme giris yaptığında online sutununa 1 çıkış yaptığında 0 değeri göndererek online mi offline mi diye kontrol sağlıyorum fakat bu kurguladığım senaryonun dışında kalan bazi durumlarda verinin doğrulu gerçeği göstermemekte örneğin bir kullanici oturum açıp tarayıcı geçmişini sildigi zaman session silindiginden dolayi kullanicinin ilgili tablodaki degeri 1 olarak gözükmekte bunun sebebi çıkış yaptığında sadece 0 degeri gonderiliyor sorunu nasıl çözebilirim onerilerinizi bekliyorum
 

 

wmaraci
reklam

Abdullahx Abdullahx MW Aracı Kullanıcı
  • Üyelik 03.04.2019
  • Yaş/Cinsiyet 29 / E
  • Meslek .
  • Konum Trabzon
  • Ad Soyad A** K**
  • Mesajlar 905
  • Beğeniler 393 / 395
  • Ticaret 3, (%100)
Kullanıcının sitede son tıklama eylemi gerçekleştirdiği olayın zamanını -artık time türünü belirlemek size kalmış- veri tabanına kaydedip sonra atıyorum 5 dk aralıklarla bir ajax sorgusu gönderip eğer 5 dk dan uzun bir süre önce tıklama gerçekleşmemişse offline yani 0 değeri atarsınız, aklıma böyle bir yöntem geldi ama siz nasıl değerlendirirsiniz bilemem. Şu an tam emin olmamakla birlikte tıklama olayını yakalayan bir js komutu vardı veya her sayfanın başına bir php komutu ile de yapabilirsiniz
101222

kişi bu mesajı beğendi.


EfeCetin EfeCetin Kimlik Onayı Bekliyor Banlı Kullanıcı
  • Üyelik 14.07.2019
  • Yaş/Cinsiyet 25 / E
  • Meslek Developer
  • Konum Karabük
  • Ad Soyad E** Ç**
  • Mesajlar 230
  • Beğeniler 17 / 53
  • Ticaret 0, (%0)
Cache ile yapabiirsin laravel ise nesbota göz at
 

 

101222 101222 WM Aracı Anonim Üyelik
  • Üyelik 22.01.2019
  • Yaş/Cinsiyet - /
  • Meslek
  • Konum
  • Ad Soyad ** **
  • Mesajlar 257
  • Beğeniler 68 / 43
  • Ticaret 0, (%0)
Codeigniter
 

 

wmaraci
wmaraci

eka7a eka7a openix.io Kullanıcı
  • Üyelik 18.06.2013
  • Yaş/Cinsiyet 39 / E
  • Meslek Yazılımcı
  • Konum Bursa
  • Ad Soyad E** K**
  • Mesajlar 651
  • Beğeniler 109 / 313
  • Ticaret 2, (%100)
ali45200 kullanıcının çevrimiçi/dışı olduğunu kontrol etmek için veritabanına bir değer eklemeniz gerekli değil. Session kontrolü yapmanız yeterlidir.

Kullanıcı oturum açtığında sessiona değer atayın.
Çıkış yap deyince de bu session değerini silin.
Kullanıcı tarayıcı kapatırsa zaten session değerleri otomatik silinir.
Kullanıcı siteye geldiğinde bu session değerinin varlığını kontrol edin. Değer yoksa 0 varsa 1 döndürün.
 

 

Openix.io | $9.90 PositiveSSL | $12.90 RapidSSL

Abdullahx Abdullahx MW Aracı Kullanıcı
  • Üyelik 03.04.2019
  • Yaş/Cinsiyet 29 / E
  • Meslek .
  • Konum Trabzon
  • Ad Soyad A** K**
  • Mesajlar 905
  • Beğeniler 393 / 395
  • Ticaret 3, (%100)
Başka bir kullanıcının sessionuna atanan değeri site yöneticisi nasıl görsün ki? Ben mi yanlış biliyorum acaba?
 

 


eka7a eka7a openix.io Kullanıcı
  • Üyelik 18.06.2013
  • Yaş/Cinsiyet 39 / E
  • Meslek Yazılımcı
  • Konum Bursa
  • Ad Soyad E** K**
  • Mesajlar 651
  • Beğeniler 109 / 313
  • Ticaret 2, (%100)

Abdullahx adlı üyeden alıntı

Başka bir kullanıcının sessionuna atanan değeri site yöneticisi nasıl görsün ki? Ben mi yanlış biliyorum acaba?


Kullanıcının session değerini yöneticinin görmesine gerek yok ki zaten. Benim belirtmek istediğim, kullanıcı oturum açtığında online değerini veritabınına kaydedip oradan kontrol etmek istemesi yanlış bir senaryo. Bu senaryoda kullanıcı oturum kapat demeden veritabanındaki değer değişmez. Ajax ile kontrol ettirmekte sağlıklı bir çözüm değil.

Kullanıcı oturum açtığında bunu sessiona değer atayarak session değerine göre kullanıcıya işlem yaptırması gerekir.

Eğer oturum açan kullanıcıları yöneticinin görmesi gerekiyorsa, kullanıcıya zaman damgası eklenir ve kullanıcı her işlem yaptığında bu zaman damgası güncellenerek veritabanında saklanır. Bu zaman damgası belirlenen süreden eski olanlar çevrimdışı işaretlenir.

Belirlenen süreden sonra kullanıcı tarayıcıyı kapatmadan tekrar işlem yaparsa, zaman damgası güncelleneceği için kullanıcının tekrar çevrimiçi işaretlenmesi sağlanır ya da eğer istenilirse, eski zaman damgasına sahip kullanıcının oturumu düşürülebilir.

Kullanıcı tarayıcı kapattığında farklı bir session ile geleceği için oturum otomatik olarak düşer ve bu döngü baştan başlar.

Ek olarak, kullanıcıların session idlerini veritabınında saklayarak sessionda tutulan tüm değerleri görmek mümkündür.
101222 Abdullahx

kişi bu mesajı beğendi.

Openix.io | $9.90 PositiveSSL | $12.90 RapidSSL
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al