簡體   English   中英

如何從訪問者瀏覽器中刪除會話

[英]How Delete session from visitor browser

我的會話有問題,我嘗試unset($_SESSION)session_unset()以及session_destroy()會話,但仍在瀏覽器中顯示(cookie擴展)

我想像session_start(['cookie_lifetime' => 10])這樣刪除終結點,但我不想設置時間,我只想在我的php代碼中的某個位置刪除它,有什么想法嗎?

我的代碼在這里:

<?php 
session_start();
$_SESSION['style'] = $style;
echo "Your style is : " . $style;
unset($_SESSION['style']);
session_destroy();

存儲在瀏覽器中的會話cookie僅包含對服務器上會話ID的引用,並且不包含任何實際會話數據。 所有這些都僅存儲在服務器上,如果將其存儲在客戶端,則實際上將是一個巨大的安全問題。 如果您刪除服務器上的會話,這將刪除服務器上與該會話有關的所有數據,並且任何使用舊會話ID進行重新身份驗證的嘗試都將失敗。 如果在會話被銷毀后瀏覽器將舊的會話cookie發送回服務器,則服務器將簡單地忽略它。 因此,無需從用戶的瀏覽器中刪除會話cookie,因為當關閉窗口時,瀏覽器會自動完成會話cookie。 建議終止會話的簡單方法是:

$_SESSION = array();

不過,無論如何,如果您出於任何原因要手動強制刪除Cookie,請執行以下操作:

<?php 
session_start();
$_SESSION['style'] = $style;
echo "Your style is : " . $style;
unset($_SESSION['style']);

if (ini_get("session.use_cookies")) {
    $params = session_get_cookie_params();
    setcookie(session_name(), '', -1,
        $params["path"], $params["domain"],
        $params["secure"], $params["httponly"]
    );
}

session_destroy();

暫無
暫無

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

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