-
Üyelik
03.03.2021
-
Yaş/Cinsiyet
26 / E
-
Meslek
Yazılımcı
-
Konum
İstanbul Avrupa
-
Ad Soyad
E** S**
-
Mesajlar
4
-
Beğeniler
1 / 0
-
Ticaret
0, (%0)
Php ile tarayıcı veya sekme kapandığında oturum sonlandırma nasıl yapılır? Javascript ile tarayıcının kapandığını yakalamaya çalışıp, kapanmadan önce PHP ile session silmeye çalıştım olmadı. Yardımcı olursanız sevinirim
-
Üyelik
12.03.2013
-
Yaş/Cinsiyet
32 / E
-
Meslek
...
-
Konum
Adana
-
Ad Soyad
M** Ç**
-
Mesajlar
665
-
Beğeniler
329 / 328
-
Ticaret
1, (%100)
Session yerine bu tür durumlarda çerezleri de silebilirsiniz. Sessionlar tarayıcıya şifreli çerez olarak kaydoluyor çünkü. Session çerezi yoksa session da yok demektir ama tabi bu ek bir bilgi olsun diye söyledim.
Asıl konuya gelirsek, o bahsettiğiniz sistem her zaman işe yaramayabiliyor. Sekmeyi kapatmadan aniden cihazın şarjı biterse yine sonlandırma olmaz. Veya tarayıcı hata verip kapanırsa vs. yine çerezler de session'lar da silinmez ve sorun oluşturabilir.
Tam olarak ne için lazım bu? Çevrimiçi bir üyeyi çevrimdışı göstermek için mi? Yoksa başka bir şey için mi?
1 kişi bu mesajı beğendi.
-
Üyelik
03.03.2021
-
Yaş/Cinsiyet
26 / E
-
Meslek
Yazılımcı
-
Konum
İstanbul Avrupa
-
Ad Soyad
E** S**
-
Mesajlar
4
-
Beğeniler
1 / 0
-
Ticaret
0, (%0)
Çözemediğim bir sebebten dolayı bunu yapmak istiyorum. Kullanıcı çıkış yapmadan tarayıcıyı kapatırsa, tekrar açtığında bazen session hatası oluşabiliyor.
-
Üyelik
12.03.2013
-
Yaş/Cinsiyet
32 / E
-
Meslek
...
-
Konum
Adana
-
Ad Soyad
M** Ç**
-
Mesajlar
665
-
Beğeniler
329 / 328
-
Ticaret
1, (%100)
Yazılımı farklı açıdan değiştirmeyi deneyin bence. Tarayıcıyı kapattığında sessionlar zaten silinmiş olur. Bu durumda sorun olmaz zaten. Ama sekmeyi kapatıp kapatmaması olayında session kontrolü o şekilde sağlıklı olmaz. Bunun yerine aktiflik durumunu farklı şekilde kontrol edin.
Birçok sitede üyenin çevrimiçi olup olmadığı anlık olarak sorgulanır. Üye giriş yaptığı anda veritabanına o üyenin "son_hareket_zamanı" sütununda o anki zaman yazılır. Daha sonra üye sitede gezdikçe her sayfa yenilemesinde veya sayfa yenilemese bile arkaplanda javascript (ajax) ile 5 saniyede bir veritabanına son_hareket_zamanı kaydettirilir. Böylece her 5 saniyede bir üyenin sekmesi açıksa veritabanı güncellenir. Sekmeyi kapattığında da güncelleme olmaz. Haliyle son_hareket_zamanı 5 saniyeden daha eski olan üye ya sekmeyi kapatmıştır ya da interneti kesilmiştir. Çevrimiçi üyeleri listelerken de son_hareket_zamanı 5 saniye ve altında olan üyeleri listelersiniz. 5 saniyeden fazla olanlar çevrimdışı olarak listelenir.
-
Üyelik
28.05.2018
-
Yaş/Cinsiyet
34 / E
-
Meslek
Çalışmıyor
-
Konum
İstanbul Avrupa
-
Ad Soyad
B** Y**
-
Mesajlar
119
-
Beğeniler
41 / 42
-
Ticaret
0, (%0)
php session'dan mı bahsediyorsunuz eğer öyleyse session değerlei tarayıcada değil sunucuda tutulur. bu sessionların tamamını silmek istiyorsanız. session_destroy ( ) kullanabilirsiniz. tarayıcı cookieleri zaten sekme kapatıldığında otomatik silinir. php koduyla tarayıcının kapatılmasına yakalamanıza da gerek yok. php kodu yukarıdan aşağıya doğru okunur ve biter. sessionlar site yüklendiğinde de aynıdır, tarayıcı kapanırken de. yani session_destroy ( ) foksiyonunu sayfanın en altında kullanmanız yeterli.