lostyazilim
tr.link

PHP Session Yönetimi

5 Mesajlar 1.653 Okunma
lstbozum
tr.link

saglamerdem saglamerdem WM Aracı Kullanıcı
  • Ü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
 

 

wmaraci
reklam

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)
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?
saglamerdem

kişi bu mesajı beğendi.

saglamerdem saglamerdem WM Aracı Kullanıcı
  • Ü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.
 

 

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)
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.
 

 

wmaraci
wmaraci

Burak611 Burak611 WM Aracı Kullanıcı
  • Ü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.
 

 

wmaraci
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