2017-07-31 51 views
0

我創建了一個logout.php頁面,讓用戶從網站註銷並將其重定向到登錄頁面。我無法刪除cookies PHP儘管路徑和時間設置正確

然而,我什麼都,餅乾都沒有被清除,因此當用戶被重定向到嬉頁面後檢查cookie,然後找到它,因此登錄用戶。

下面是logout.php代碼:

<?php 
unset($login); 
if (isset($_COOKIE['xxx'])){ 
    setcookie('xxx', false, time() - 3600,"/"); 
} 
if (isset($_COOKIE['yyy'])){ 
    setcookie('yyy', false, time() - 3600,"/"); 
} 
    header("Location: singin.php"); 
    die(); 

?> 

請注意,這個PHP頁面是在子文件夾密碼保護和HTML鏈接重定向到需要一個PHP文件()的logout.php文件。

+0

試試這個:https://stackoverflow.com/questions/686155/remove-a-cookie 讓我們知道,如果它幫助 – onno204

+1

'如果(isset($ _ COOKIE [ 'X'])){ 的setcookie(」 X'' - 你知道那是什麼嗎?想一會兒,然後一步一步告訴自己*大聲* * –

+0

*「你是怎麼把餅乾放在第一位的?」* @PetervanderWal哦,它是設置好吧,再看看他們的代碼;-)編輯:我看到你刪除了我回應的評論。 –

回答

0

使用PHP unset()刪除您的cookie裏,你可以得到完整的細節在這裏delete the cookie

if (isset($_COOKIE['xxx'])){ 
    unset($_COOKIE['xxx']); 
} 
if (isset($_COOKIE['yyy'])){ 
    unset($_COOKIE['yyy']); 
} 

,或者設定值null

setcookie('xxx', null, -1, '/'); 
setcookie('yyy', null, -1, '/'); 

或負時間爲您的Cookie ,設定值爲empty,過去一段時間爲您的cookie爲

setcookie("xxx", "", time()-3600); 
setcookie("yyy", "", time()-3600); 
+0

我已經嘗試了他們兩個,它不工作的cookie仍然活着! – Mostafa

+0

很難刷新你的頁面上的CTRL + F5,然後查看 –

+0

我強制刷新,同樣的問題,cookie實際上可以在firefox cookies中看到 – Mostafa

0

我終於找到了問題背後的原因。 這是因爲我已將session_cache_limiter('public');放入我的代碼中,所以我認爲這可以防止客戶端將Cookie設置爲過期日期。

我已經這麼做了,因爲我不希望客戶在每次他們重新提交表單時都要求用戶。

看來這不是正確的做法,我會爲此發佈另一個問題。

謝謝大家的幫助。

相關問題