2015-07-12 48 views
1

怪我刪除Cookie PHP中使用下面的代碼:清除Cookie的使用PHP的行爲在Safari

setcookie('test', null, -1, '/'); 

它的工作原理相當不錯,在所有的瀏覽器,但在Safari。如果速度夠快,Safari的後續請求會將此Cookie發送到網絡服務器。

我能想到的最簡單的例子:在瀏覽器

<?php 

setcookie('test', null, -1, '/'); 
print_r($_COOKIE); 

?> 

按F5快捷。有時候你會看到cookie被刪除的值。平臺似乎沒有關係。我在iPhone,Safari(Windows)和Safari(Mac)上得到了這個結果。對我來說,它看起來像一個Safari錯誤,但也許我在這裏失去了一些東西?

我想不要在以下請求中設置cookie,無論多快。感謝您的任何見解。

+0

我也許偶然發現了同樣的問題。會發生什麼是我們的Web應用程序有時會獲取cookie值被「刪除」的請求(這是PHP在刪除Cookie時設置的值)。除了您提到的狩獵之外,有時用戶代理似乎是Googlebot。 – Fusselwurm

+0

你有沒有想過這個問題?我遇到了完全相同的情況。它只發生在我們的一小部分用戶身上,但對於某些用戶而言,這種情況始終發生,幾乎所有用戶都使用舊版本的Safari。無法在OSX和Safari的任何測試版本上內部複製它。 – John

回答

0

此問題已經被舉報here

通過設定路徑解決方案:

setcookie('testcookie', 'cookiesetting temporary', time()+3600, '/path/'); // set 
setcookie('testcookie', '', time()-3600, '/path/'); // delete 
+0

我認爲這是一個不同的問題。在我的例子中,cookie被刪除,而不是立即。除了我試圖將腳本移動到/ test /文件夾並相應地調整路徑。仍然是同樣的問題。 – piece

0

您是否正確設置在第四個參數的路徑?

safari cookie issue

+0

我需要cookie對整個域有效,因此/作爲路徑。有什麼問題呢?只需在這裏[官方參考](http://php.net/manual/en/function.setcookie.php)。 – piece