2013-05-27 52 views
2

儘管我可以在瀏覽器中看到,但PHP不能讀取cookie。無法在本地主機上的php中讀取cookie

//i set cookie in localhost/site/classes/php/user 
setcookie("liu", $result[0]['user_id'], time() + 60 * 60 * 24 * 30, "/"); 
//trying to access it in localhost/site/index.php 
$loggedInUser = $_COOKIE['liu']; 
+2

該Cookie是由'setcookie'設置,但在'$ _COOKIE'將無法使用,直到頁面有重新加載。 – andrewsi

+0

我正在重新加載頁面。我甚至在幾分鐘後檢查。 –

+2

爲什麼這個問題被拒絕投票? @EjazKarim可能是一些附加組件不允許設置cookie,您的瀏覽器必須拒絕,您是否嘗試過其他一些PC? –

回答

5

如果你在本地主機上運行,​​你應該明確地設置cookie域爲false

你可以嘗試:

setcookie("liu", $result[0]['user_id'], time() + 60 * 60 * 24 * 30, "/", false); 

有進一步看這裏:Cookies on localhost with explicit domain

+1

這對我有效.. –

2

您無法讀取您在上述代碼中設置的cookie。

Cookie隨標題一起發送到瀏覽器。

只有在用戶導航到下一頁或將您重定向到新頁面後,PHP才能夠讀取cookie。

PHP將能夠讀取cookie,然後瀏覽器將通過標題發回。

閱讀:http://uk1.php.net/manual/en/function.setcookie.php

常見缺陷:

餅乾不會成爲可見,直到一個頁面,該Cookie應該是可見的未來負載。要測試cookie是否設置成功,請在cookie過期之前在下一個加載頁面上檢查cookie。

到期時間通過expire參數設置。調試cookie存在的一個好方法是簡單地調用print_r($ _ COOKIE);

+0

感謝您的清晰答案... –