2012-05-10 81 views
0

我試圖用使用一個Cookie使用PHP來確定用戶是否登錄存儲檢索PHP的Cookie

我設置cookie中的以下內容:

else $keep_alive = time()+(86400 * 14); 
setcookie("id",mysql_result($result, 0, "id"),$keep_alive, "/", "mydomain.com"); 

當我嘗試獲取'id'的值我可以使用以下方法檢索它,只要在發送標頭之前這樣做。

$id = $_COOKIE['id']; 

但是,如果頁頭已經發送,則不會檢索'id'的值。發送標題之後無法獲得cookie的值,還是錯過了某些內容?

+0

不,這是不允許的 –

+0

等等,你是說你不能在發送標題後讀取(不設置,然後讀取)cookie? – Shomz

+0

發送標題後無法讀取。 Cookie已設置(在我的瀏覽器中查看Cookie時可見)。 – Jeremy1026

回答

0

原來的問題是,我試圖在我的包含文件中獲取cookie值,該文件僅適用於相對路徑。因此http://www.example.com/directory/page.php將不得不被引用爲我的include語句中的./directory/page.php,以使cookie可以被檢索。我不確定這是PHP的錯誤還是他們打算以這種方式工作,但現在一切都很順利。

1

Cookie由標頭設置/發送。您無法兩次發送標題,因此如果您已經發送標題,則無法在此頁面加載上設置Cookie。確保你不發送cookie之前打印任何東西了,或者緩衝區它(ob_start等)

+0

這會影響檢索Cookie值嗎?我沒有試圖設置標題發送後,只接收它們的值。 – Jeremy1026

+0

這個值是真的嗎? –

+0

這是存儲在我的數據庫中的用戶的ID號。在我的測試中,$ _COOKIE ['id']的值應該是1。 – Jeremy1026