我正在使用RewriteRule在htaccess中創建烹飪。在我的測試中,我根本無法讓這個cookie消失。這裏是我如何創建的cookie,這讓我在this thread幫助:PHP Cookie破壞不起作用,我做錯了什麼?
[L,CO=redirect_indicator:yes:.www.example.com,R=301]
因此該cookie默認的過期時間應該是在瀏覽會話的只是時間。我試圖在我的腳本結尾處銷燬它,結果令人困惑。在我的腳本結束時,我運行下面的(從another stack thread here幫助)我有
var_dump($_COOKIE['redirect_indicator']);
然後:
所以,我將做到這一點,在我的腳本的頂部看到的cookie用於測試目的試着簡單得多破壞腳本比這很好,但沒有人可以做的伎倆:
if (isset($_SERVER['HTTP_COOKIE'])) {
$cookies = explode(';', $_SERVER['HTTP_COOKIE']);
foreach($cookies as $cookie) {
$parts = explode('=', $cookie);
$name = trim($parts[0]);
setcookie($name, '', time()-1000);
setcookie($name, '', time()-1000, '/');
}
}
現在,代碼段後,我也再次運行此:
var_dump($_COOKIE['redirect_indicator']);
事實上,cookie不在那裏!這很好,但只要我在不應該生成cookie的頁面上再次運行腳本,該cookie在我的第一個var_dump期間仍然顯示。
無論如何擺脫這個cookie或將我總是在瀏覽器存儲的東西的擺佈。當我重新啓動瀏覽器時,它確實消失了,但在腳本執行後我需要這個東西消失。
每次請求通過設置Cookie的重寫規則時,cookie都會重新設置。如果每次請求都發生這種情況,那麼無論您是否嘗試取消設置,它都會在每次請求時重新創建。如果你不想銷燬所有的cookies,爲什麼不''foreach($ _COOKIE as $ name => $ val)setcookie($ name,'',1);'? – DaveRandom 2012-04-12 17:03:05
我基本上使用cookie作爲重定向的標記,讓我知道這個人正在嘗試訪問的舊url(現在是301'd),舊ulr告訴我我需要發送它們的位置。問題是我使用相同的腳本來重定向每個人,但不是每個鏈接都會觸發cookie。所以我的噩夢場景是有人使用獲取cookie的鏈接,但後來又回到了另一個不會觸發cookie的鏈接,但cookie仍然存在,我無法處理它。 – absentx 2012-04-12 19:50:38