2016-12-09 139 views
-1

我有這個問題與餅乾:PHP的Cookie仍然存在刪除後

setcookie('NAME', '', time() - 3600); 
session_unset(); 
session_destroy(); 

餅乾仍然在瀏覽器中存在的,我能看到的值與print_r($_COOKIE); 但我不能訪問到文件內容(這是正確的因爲會話在服務器端刪除)。 但是爲什麼cookie在瀏覽器中仍然可見,直到關閉它爲止?

+2

要設置cookie的到期,所以在接下來的頁面加載它會被瀏覽器中移除。 – cmorrissey

+0

哪個cookie?如果你打算取消設置會話cookie,使用'setcookie(session_name(),time() - 3600);'(除非會話名作爲session_name()的參數,否則不要使用會話名的文字) – symcbean

+0

是的會話cookie,我不會在會話開始時設置它,它會自動出現 – Klapsius

回答

0

您正在設置cookie過期,所以在下一頁加載時它將被瀏覽器刪除。 - cmorrissey

cmorrisey是正確的。在你的代碼示例中,我看到你在一個小時前設置了過期。如果這是首選,您也可以使用0來讓cookie在會話結束時過期。

PHP的cookie:http://www.w3schools.com/php/func_http_setcookie.asp

到期字段是可選的。指定cookie何時到期。值:time()+ 86400 * 30將設置cookie在30天內過期。如果省略此參數或將其設置爲0,則Cookie將在會話結束時過期(瀏覽器關閉時)。默認值爲0

會話名稱()/ session.name - http://php.net/manual/en/function.session-name.php

+0

正如我上面所說的,我根本沒有啓動這個cookie。他在我開始會議時自動出現。但我不想保留此數據 – Klapsius

+0

會話名稱引用會話的名稱,該名稱用於Cookie和URL(例如PHPSESSID)中。它應該只包含字母數字字符;它應該是簡短的和描述性的(即對於具有啓用cookie警告的用戶)。如果指定了名稱,則當前會話的名稱將更改爲其值。 – mrvnmchm

+0

string session_name([string $ name]) session_name()返回當前會話的名稱。如果給出$ name,session_name()將更新會話名稱並返回舊的會話名稱。 – mrvnmchm