我對會話管理很困惑。我使用的是PHP,當用戶點擊登錄按鈕時,我的電話號碼是session_start()
作爲我的腳本中的第一行。這樣做的結果是客戶端上一個名爲PHPSESSID的cookie具有唯一的值。這似乎符合我的預期。如何清除會話cookie
我很困惑的地方就是註銷過程。當用戶點擊'註銷'時,我call session_unset();
然後session_destroy();
。我的期望是這應該清除cookie,但不是。即使當我關閉瀏覽器中的選項卡時,當我通過新選項卡返回網站時,該舊cookie仍然存在,以及舊的會話ID值。這意味着會話ID正在從一個會話重用到下一個(以及之後)。即使我再次通過登錄過程,會話ID仍保持不變。這不可能是正確的,對吧?
在一個有點絕望的嘗試,我試圖用這個功能來清除cookie自身,但它似乎一事無成:
// destroy the cookies
var cookies = document.cookie.split(";");
for (var i = 0; i < cookies.length; i++) {
var cookie = cookies[i];
var eqPos = cookie.indexOf("=");
var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
}
我是不是誤解這個過程是如何工作的?或者我做錯了什麼(或兩者都有!)。感謝您的任何建議或參考。
你必須在註銷頁面開始會話('session_start')..你做了嗎? – phpfresher 2015-03-03 04:41:33
Cookie必須通過將cookie設置爲前一次銷燬。 – arunrc 2015-03-03 04:42:42
@phpfresher - 就是這樣。我沒有意識到我需要這樣做。如果您發佈答案,我會接受它。謝謝! – Alex 2015-03-03 04:43:27