2012-10-24 56 views
0

我想要刪除一個cookie,但發現必須刷新瀏覽器或點擊其他鏈接才能讓cookie消失。我在PHP中使用了標頭(..)。如何在不刷新瀏覽器的情況下刪除PHP cookie?

if(isset($_COOKIE['auth_key'])){setcookie("auth_key", "", time() - 3600);} 
header("Location: ../login.php"); 

當我到登錄頁面,cookie的輸出,但在刷新它消失,或者如果我去到另一條鏈路從那裏消失。

我想在沒有任何用戶交互的情況下刪除cookie,並在服務器加載login.php之前將其刪除。

任何幫助,將不勝感激。

這個答案是:

if(isset($_COOKIE['auth_key'])){setcookie("auth_key", "", 1,'/');} 

,因爲我設置一個斜槓 '/' 的餅乾。我用它來刪除它,現在它可以工作。然而,奇怪的是,cookie在刷新時仍然被刪除。

+1

不使用相對時間來刪除cookie。人們的時鐘可以走開。爲了刪除一個cookie,總是使用固定的時間值'1'。 –

+0

嘗試過,但cookie正在刪除我的方式(和你的)。這是讓瀏覽器接受這個事實。 – martyn

回答

0

只需在login.php的開頭清除cookie(使用此代碼)而不是此重定向頁面。

+0

我在註銷和登錄頁面上刪除了cookie,但仍然沒有運氣。 – martyn

+0

還沒鎖?發現了什麼? – GolezTrol

0

考慮設置一個可能的超時時間,然後使用Javascript向服務器端頁面發起一個AJAX請求,以刪除有問題的cookie。

+0

需要在註銷時立即刪除cookie,因爲它會影響登錄頁面菜單。您的意思是在login.php上放置一個ajax腳本,以便複製刷新操作。 – martyn

0

正確的答案,我發現是制定一個「/」餅乾:我用這個刪除所有cookie

if(isset($_COOKIE['auth_key'])) { 
    setcookie("auth_key", "", 1, '/'); 
} 

和現在的工作。但是,Cookie在刷新時仍然被刪除。

相關問題