Nasıl php bir kullanıcı oturumu için?

5 Cevap php

Şu anda, benim php komut, bir kullanıcı sonra i = 1 session_login saklanan kaydedilir. Ama bir sorun var. Ben firefox, multi-tab (i çoğu kişi ve bugün web tarayıcıları uygulaması çoklu sekme işlevi olduğuna inanıyorum) kullanarak bir alışkanlığı var. Ben bir oturuma sahip sekmesini kapalı, ama ben tarayıcı kapattılar. Birkaç saat sonra, ben giriş yapmamı gerektiren aynı sayfada geri gel, ama öyle değil. (Ben "Session" denilen thats düşünüyorum) tekrar giriş beni gerektirmez. O tarayıcıyı kapatmak yerine sekmeyi kapatmak kullanıcıya çıkış için yine de var mı?

Ben, şu anda zaman boşta tekme out 1 çözüm var. Ama php tarih / zaman şey çok sınırlı bilgiye sahip, bu nedenle bu son seçenek olacaktır. Ben bilmek istedim, ben yapabileceğim başka bir şey süresini boşta kullanarak yanında, var mı?

5 Cevap

PHP bir oturum zaman aşımına önce ne kadar süreceğini belirlemek için kolay bir yol var:

session_set_cookie_params(3600); // make it expire after 1 hour

Sadece Eğer oturum (örnekte, 1 saat = 60 dakika = 3600 saniye) son istediğiniz saniye sayısını geçmek.

http://us2.php.net/manual/en/function.session-set-cookie-params.php

Dolayısıyla adı: tarayıcı oturumu (yani tarayıcı kapatıldığında) kapalı olduğunda bir oturum çerezi sadece tarayıcıdan temizlenir. Eğer oturumu kısa bir süre sekmesinden sonra silinebilir istiyorsanız (yaklaşık 5 dakika) çerez üzerinde çok kısa bir zaman aşımı süresini ayarlamak ve veritabanında aynı saklamak kapalıdır. Sonra sunucudan her dakika bir dosyayı çağıran web sayfasında bir javascript işlevi var: Bu dosya daha sonra sonraki beş dakika boyunca çerez / veritabanı girişi "yeniler". O zaman daha beş dakika için sitenizi bırakırsanız, daha sonra oturumu geçersiz kılınır.

Ayrıca onlar web sayfasını kapalı veya başka bir sayfaya gitti varsa algılayan bir JavaScript "onunload" fonksiyonunu ekleyebilirsiniz: Eğer bir "destroycookie" işlevini çağırmak için bu bir kanca ekleyebilirsiniz - ancak, kontrol etmek gerekir ki onlar cenneti 't sadece sitenizdeki başka bir sayfaya gitti ve aslında iki sekme açık sitenizden iki sayfaları yoktur.

Ben aradığınız seçenek oturum tanımlama ermesinden için ayardır inanıyorum. Bunun için PHP komutu hatırlamıyorum, ama pencere kapandığında sona erecek çerez ayarlamak gerekir.

Burada PHP oturum dokümantasyon: http://us2.php.net/manual/en/book.session.php

Belki session_write_close kullanabilirsiniz () olabilir?

Sizin için yararlı olabilir session_destroy fonksiyonu için PHP belgelerine dair bir yorum var: http://us2.php.net/manual/en/function.session-destroy.php#71889