2014-11-15 3 views
1

Clear PHP сессии на TAB/Окно ЗакрытьClear PHP сессии на TAB/Закрыть окно

Я хотел бы, например, на вкладке/окне закрытия веб-сайта например шахты, РНР сессия будет ясно.

Я использую время() для истечения срока действия php неактивным в течение 1800 секунд, но мой сайт также требует, чтобы пользователь закрыл все вкладки/окно моего сайта, его сеанс php истекает/недействителен и требует авторизации еще раз.

Я использую следующие заголовки

<meta http-equiv="PRAGMA" content="NO-CACHE"> 

Но это тоже не делает»работу. Я использую expires 0 meta header также и no-cache, но такую ​​же проблему.

Сессия по-прежнему работает, если я открываю новую вкладку и ключ в панели администратора веб-сайта, так как обычно, если я не вошел в систему, я вхожу в панель администратора, она перенаправляет меня на страницу входа.

Но поскольку сессия все еще действительна, это стало проблемой.

ответ

0

Я не уверен, почему вы хотите уничтожить его на закрытой вкладке. Но это должно сделать трюк. (Он использует JQuery)

Javascript/JQuery

window.onbeforeunload = function(){ 
    $.ajax({ 
     type: "GET", 
     url: "destroy.php" 
    }); 
    } 

PHP

<?php 
// Initialize the session. 
// If you are using session_name("something"), don't forget it now! 
session_start(); 

// Unset all of the session variables. 
$_SESSION = array(); 

// If it's desired to kill the session, also delete the session cookie. 
// Note: This will destroy the session, and not just the session data! 
if (ini_get("session.use_cookies")) { 
    $params = session_get_cookie_params(); 
    setcookie(session_name(), '', time() - 42000, 
     $params["path"], $params["domain"], 
     $params["secure"], $params["httponly"] 
    ); 
} 

// Finally, destroy the session. 
session_destroy(); 
?> 

см http://php.net/manual/en/function.session-destroy.php как Destory сеанс

Смежные вопросы