2010-01-19 44 views
1

我遇到了session_id()的問題。當我調用session_destroy()時,通過專門去登出頁面,然後返回到我的開始頁面,session_id仍然是一樣的。該怎麼辦? 但是,當我關閉瀏覽器窗口session_id是一個新的,但如果一個人不關閉他/她的瀏覽器窗口?PHP的會話問題?

回答

4

session_destroy()銷燬服務器上的會話數據,而不是Cookie中的會話ID。使用setcookie()來取消設置cookie,或者使用session_regenerate_id()來獲取新的ID。

+0

session_regenerate_id(示出是正確的函數名稱(http:// de.php.net/manual/en/function.session-regenerate-id.php) – Thomas 2010-01-19 15:06:22

0

再生並破壞變量的順序是很重要的:

function _session_destroy() { 
    session_regenerate_id(); 
    session_destroy(); 
} 
-1

使用),這些功能如爲了下面

session_start(); 
session_unset(); 
/* Kill all session variables */ 
    unset($_SESSION['variable1']); 
    unset($_SESSION['variable2']); 
    . 
    . 
    . 
    . 
    . 
    unset($_SESSION['variableN']); 


    $_SESSION = array(); // reset session array 

/* now generate session id */ 

    session_regenerate_id(); 
    session_destroy(); // destroy session.