lostyazilim

Tarayıcıyı kapatınca açık kalan oturum

12 Mesajlar 1.460 Okunma
lstbozum
wmaraci reklam

tarkan3261 tarkan3261 WM Aracı Kullanıcı
  • Üyelik 25.03.2021
  • Yaş/Cinsiyet 45 / E
  • Meslek programcı
  • Konum Elazığ
  • Ad Soyad T** A**
  • Mesajlar 58
  • Beğeniler 3 / 7
  • Ticaret 0, (%0)
Merhaba arkadaşlar. Benim veritabanında "durum" adında bir alanım var, buraya kişinin online olduğunu belirten 1 sayısı ekleniyor, oturum kapatılınca da bu sayıyı 0 yapan bir sorgu çalışıyor ve ardından çıkış yapılıyor, buraya kadar sıkıntı yok. Peki ya kişi tarayıcıdan kapatırsa ne olacak? O zaman kişinin kaydının bulunduğu o alan 1 olarak kalacak ve uygulamayı kapattığı halde diğer kullanıcılar bu kişiyi hala online olarak görecekler, işte bu soruna bir çözüm arayışındayim. Hepimiz biliyoruz ki tarayıcının kapatılması anında bir kodun çalışması için anca arka planda ayrı bir kod yapısının çalışması gerekir ki kapatılma eventini algilasin. Böyle bir sistem yok, ne yapabilirim acaba, bı fikri olan var mı? İlgilerinin için şimdiden teşekkürler.
 

 

wmaraci
reklam

OmerGunay OmerGunay https://omergunay.net Kullanıcı
  • Üyelik 15.05.2015
  • Yaş/Cinsiyet 33 / E
  • Meslek PHP Developer
  • Konum İstanbul Avrupa
  • Ad Soyad Ö** G**
  • Mesajlar 1207
  • Beğeniler 382 / 381
  • Ticaret 16, (%100)
tarkan3261 en mantıklısı bir süre belirtmek. Güncelleme üzerinden 5 dk geçtiyse yeni güncelleme gelmediyse 0 yapabilirsiniz. Aklıma bu geldi. Yani her 5 dk da bir kontrol ettirmek gibi bişey olabilir. Bu şekilde kapatırsa en fazla 5 dk sonra offline olacaktır.
 

 

Herkes yediğinden ikram eder..(Yavuz Sultan Selim)

tarkan3261 tarkan3261 WM Aracı Kullanıcı
  • Üyelik 25.03.2021
  • Yaş/Cinsiyet 45 / E
  • Meslek programcı
  • Konum Elazığ
  • Ad Soyad T** A**
  • Mesajlar 58
  • Beğeniler 3 / 7
  • Ticaret 0, (%0)
Çok iyi, sayın Ömer Günay teşekkür ederim, peki bu 5 dakikada bir olacak güncellemeyi oyle bir sayfada yapmalıyım ki kisi tarayıcıyı, yani chat sayfasini kapatacak ya o sayfada olmaz yani, yani artık o kisi için o sayfa yok artık, iste bu yüzden başka sayfada bu dediğinizi yapmalıyım, dogru mu?
 

 

OmerGunay OmerGunay https://omergunay.net Kullanıcı
  • Üyelik 15.05.2015
  • Yaş/Cinsiyet 33 / E
  • Meslek PHP Developer
  • Konum İstanbul Avrupa
  • Ad Soyad Ö** G**
  • Mesajlar 1207
  • Beğeniler 382 / 381
  • Ticaret 16, (%100)
tarkan3261 bu işi hiç yapmadım yapanlar daha iyi bilirler tabiki. Ama şöyle yapabilirsiniz. Her sayfanın başına update kodu ekleyin. O sayfayı yenileyen veya yeni giren birisinin session dan id sini alıp durumuna 1 yazıdırın ve süreyi alın. Bu süreden 5 dk sonrasında durumu 0 yapın. Eğer kişi yenilerse sayfayı veya başka sayfaya geçerse zaten tekrar o 5 dk lık süre tekrar başlar. Yenilemez veya başka sayfaya geçmezse sitede olsa bile offline olarak gösterirsiniz. Aklıma böyle bi çözüm geldi.
 

 

Herkes yediğinden ikram eder..(Yavuz Sultan Selim)
wmaraci
wmaraci

tarkan3261 tarkan3261 WM Aracı Kullanıcı
  • Üyelik 25.03.2021
  • Yaş/Cinsiyet 45 / E
  • Meslek programcı
  • Konum Elazığ
  • Ad Soyad T** A**
  • Mesajlar 58
  • Beğeniler 3 / 7
  • Ticaret 0, (%0)
Çok teşekkür ederim, yalnız giriş yapan kişi sayfayı sürekli yenileyecek mı?
 

 

mehmet01 mehmet01 WM Aracı Kullanıcı
  • Üyelik 12.03.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek ...
  • Konum Adana
  • Ad Soyad M** Ç**
  • Mesajlar 665
  • Beğeniler 329 / 328
  • Ticaret 1, (%100)
Tarayıcı kapatırken yakalamak vs. riskli iş. Tarayıcı kapatmadan interneti kesilirse veya bilgisayar aniden donarsa vs. yine işe yaramaz.

Her sayfa yenilediğinde veritabanına o anki zamanı kaydedin. Ve online üyelerde listelerken zaman damgası 1 dakikadan daha kısa olanları online gösterin. 1 dakikadan uzun süredir hareket yoksa zaten ofline'dir. Böylece ofline olanların da en son ne zaman online olmuş veya hareket etmiş onu da gôsterebilirsiniz o zaman damgasıyla.

Peki üye sayfa yenilemeden bir sayfada uzun süre durursa nasıl olacak derseniz onu da javascrip ile yapabilirsiniz. Her sayfaya javascript kodu koyacaksınız, üye o sayfada sabit dursa bile 60 saniyede bir arkaplanda online süresini yeniliceksiniz.

Not: Ben 1dk dedim ama sitenize göre süreyi ayarlayabilirsiniz.
 

 

v4r1able v4r1able Coder Kullanıcı
  • Üyelik 04.04.2020
  • Yaş/Cinsiyet 19 / E
  • Meslek Kodlama
  • Konum İstanbul Avrupa
  • Ad Soyad L** P**
  • Mesajlar 160
  • Beğeniler 45 / 57
  • Ticaret 1, (%100)
Xenforo kullanıyor aynı mantığı lastactivity olayı, veritabanında bir tabloda lastactivity alanına kişinin son aktivite zamanı ekleniyor yanlış anlama her sayfa yenilenmesinde değil sayfa açıkken javascript üzerinden setInterval ile örneğin 500 salisede bir phpye post gönderiliyor o php zamanı güncelliyor. Ek olarak post yapılan phplerede ekleyebilirsin, durum kısmı 1 veya 0 yerine basit bir php kodu ile kişinin son aktivitesi üzerinden örneğin 10 dakika geçtiyse offline geçmedi ise online olur.
 

 

Storyman Storyman Kimlik Onayı Bekliyor Banlı Kullanıcı
  • Üyelik 31.08.2020
  • Yaş/Cinsiyet 44 / E
  • Meslek Reklam Ajansı ve Web Geliştirm
  • Konum Bursa
  • Ad Soyad E** T**
  • Mesajlar 210
  • Beğeniler 129 / 105
  • Ticaret 1, (%100)
Ömer Günay'ın dediği şekilde yaparsanız en garantisi olur derim. Sessiona ek süre tanımlayarak. Başka da bir çözüm aklıma gelmiyor
 

 

tarkan3261 tarkan3261 WM Aracı Kullanıcı
  • Üyelik 25.03.2021
  • Yaş/Cinsiyet 45 / E
  • Meslek programcı
  • Konum Elazığ
  • Ad Soyad T** A**
  • Mesajlar 58
  • Beğeniler 3 / 7
  • Ticaret 0, (%0)
Ya arkadaşlar çok teşekkür ederim bunları uygulayacağim da benim çok basit ama bana kafayı yedirtecek çok inatçı bı sorunum var; bir sayfada oluşturulan session bilgisi başka sayfadan nasıl çağrılır nasıl bu değer alınır çok iyi biliyorum ama olmuyor bı türlü oluşturduğum session a başka sayfadan ulaşamıyorum, zaten basit bir iki kod, ama olmuyor, sayfada tanımsız değişken hatası veriyor, ne yaptıysam olmadı intten araştırdım taa PHP ini dosya ayarlarına girdim yine olmuyor olmuyor rica etsem bu konuda bu tecrübeyi yaşamış olan biri varsa yardımcı olabilir mı, bu sorun bu küçücük sorun bana kafayı yedirtecek, teşekkürler
 

 

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)
O diğer sayfada session_start() yazdığınıza emin misiniz peki?
Storyman

kişi bu mesajı beğendi.


wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al