2012-03-13 101 views
8

在一個頁面上我有這樣的事情PHP setcookie()函數不工作

setcookie('user', 'value' ,6000, '/', 'mydomain.co.uk'); 

在接下來的頁面我有

var_dump($_COOKIE); 

我可以看到所有的自動生成的,如PHPSESSID但我看不到user

如果我做echo setcookie('user', 'value' ,6000, '/', 'mydomain.co.uk');它返回true。所以我不確定爲什麼我看不到它。

我嘗試了很多不同的想法,但沒有任何工作。此外,我已經使用.htaccess通過一個頁面重定向所有請求index.php不知道這是否做任何事情。

+0

您可能會發現['新的Cookie($ name)'](https://github.com/delight-im/PHP-Cookie/blob/004cde69ec840e65c15275e09b92ecb1da06f357/src/Cookie.php#L51)有幫助, [這個獨立的庫](https://github.com/delight-im/PHP-Cookie)。 – caw 2016-09-21 02:39:06

回答

17

試試這個:

setcookie('user', 'value' ,time() + 6000, '/', 'mydomain.co.uk'); 

的到期參數需要一個時間戳。作爲時間戳的6000在過去,因此刪除了Cookie。

+0

啊哈是的!非常好,謝謝! – Alex 2012-03-13 19:21:22

+1

補充說明:expires參數可以設置爲0,基本上使cookie在會話結束時過期。http://php.net/manual/en/function.setcookie.php – diggersworld 2012-11-14 16:56:11

1

如何:

setcookie('user', 'value' ,6000, '/', '.mydomain.co.uk'); 

檢查在瀏覽器的餅乾。有些瀏覽器(firefox和chrome)有插件,可以讓你看到cookies,因此你可以進行調試。

編輯:問題是6000.這是錯誤的。 使用這樣的:time() + 6000

+0

是的,我一直在使用一個Chrome插件,但是當它沒有出現在那裏時,卻使用了var_dumping $ _COOKIE。我試過使用'.mydomain.co.uk'但它仍然不工作:( – Alex 2012-03-13 19:16:38

+0

啊,是的,謝謝! – Alex 2012-03-13 19:21:48