Yok ya kullanıcı logout tıklayarak olmadan tarayıcıyı kapatmak unset oturum [çoğaltmak]

5 Cevap php

Possible Duplicate:
How do I expire a PHP session after 30 minutes?

Ben logout.php tüm oturum var yok ve kullanıcı oturum kapatma üzerine tıkladığınızda arıyorum, ne kullanıcı logout.php tıklayın ancak doğrudan tarayıcı kapanmıyor. nasıl ben o seansı silebilirsiniz??

5 Cevap

Sen, oturum verileri için bir sona erme süresi her session_start çağrısı ile test ve süresi dolmuş ise oturumu yok edebilir:

session_start();
if (!isset($_SESSION['EXPIRES']) || $_SESSION['EXPIRES'] < time()+3600) {
    session_destroy();
    $_SESSION = array();
}
$_SESSION['EXPIRES'] = time() + 3600;

Sen yapamazsın. Ancak, oturum çerezleri genellikle tarayıcı kapatıldığında onlar silinir anlamına gelen bir sona zaman olmadan göndermek, böylece oturum yine kaybolur.

Tarayıcı penceresi Oturum Tanımlama zaman aşımı süresini değiştirmek istemiyorsanız sağlayan kapandığında PHP oturumları otomatik olarak sona gerekir. Bu olay değilse o zaman bir şekilde bu değiştirilmiş ve biz yardımcı olmak için daha fazla ayrıntı gerektirecek zannedebilir.

Oturumu sadece sunucu belli bir süre sonra istemciden duymuyor sona erecek olabilir. Yani içeri bakarak istediğiniz yönü var ..

Kırlangıç

Eğer oturum çerezi için bir sona süresini ayarlamak yoksa kullanıcı (eğer depolama veya güvenliği hakkında endişeli sürece) en pratik amaçlar için aynı etkiye sahiptir tarayıcı kapandığında, silinecektir. Yeterince iyi değilse, çok hızlı bir şekilde sona erecek oturumları ayarlayın ve periyodik AJAX onları yenilemek olabilir.