簡體   English   中英

Session 舊的銷毀后還有數據 Session

[英]Session Data is Remaining After Destroying Old Session

session_start();
// Unset all of the session variables.
session_unset();

// 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() - 420000,
        $params["path"], $params["domain"],
        $params["secure"], $params["httponly"]
    );
}

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

header("location: ../index.html");
die();`

我的注銷腳本在上面:

登錄系統沒有任何問題,當用戶在清除瀏覽器緩存后嘗試注銷時,系統可以正常工作,但是當不同的帳戶依次登錄時,似乎 session 數據混淆且未被清除在注銷時。 我從 PHP 手冊中獲取了代碼片段。 對於我的一生,我無法弄清楚出了什么問題。 我檢查了 Chrome cookie 數據,注銷后 PHPSSID 被刪除,這讓我相信 session 正在被破壞。

為了清楚起見,假設約翰登錄網站並注銷。 Paul 使用同一台計算機和瀏覽器登錄該網站,但 Paul 在登錄時看到的不是他的名字,而是 Johns。 這就是我面臨的問題。

感謝您的任何反饋。

我試過使用不同的腳本並嘗試使用 unset($_SESSION) 取消設置整個 session,但這使問題變得更糟。 我還嘗試取消設置單個 session 變量,例如 unset($_SESSION['username']),但這也不起作用。

請檢查登錄發生的代碼

您確定用戶不會根據存在的 cookie 和自動創建的 session(如果不存在)自動登錄嗎?

我知道你會“啊……”,但這可能是唯一合乎邏輯的解釋。 這是一種令人討厭的不安全的用戶登錄方式,但它可能會發生

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM