2012-01-30 74 views
1

我有一個網頁(的mypage.html),它設置一個cookie如下:現在不能總是讀會話cookie

setcookie ("sessionid", md5 (uniqid (rand()))); 

,在一個頂部包括顯示網站標題,我有以下:

echo "cookie is ". $_COOKIE['sessionid']; 

當我在包含頭文件的mypage.html上時,echo命令會顯示cookie名稱,因爲它應該...例如

Cookie是4d40102ff2d2268d907dd31debc411e2 cookie是4d40102ff2d2268d907dd31debc411e2

但如果我從設置cookie的網頁aeway移動,我看到的是

Cookie是

與沒有名字 - 如果我回到mypage.html它再次讀取沒有問題。我不知道這是怎麼發生的?有任何想法嗎?

+0

更好地使用$ _SESSION代替$ _COOKIE。 – powtac 2012-01-30 21:42:45

+0

不客氣,達倫。 @powtac是正確的,如果你在上下文中使用這個var,SESSION會更好。 – 2012-01-30 21:51:14

回答

1

設置cookie的顯式路徑。缺省值僅爲當前目錄,因此如果您導航到另一個目錄中的腳本,該cookie將不會被瀏覽器發回。

// Cookie is valid for all paths (/) in the current domain 
// This also has an explicit expiry time of 1 hour from the time it's set... 
setcookie ("sessionid", md5 (uniqid (rand())), time() + 3600, "/"); 

這是一個有點不尋常,雖然要設置自己的會話cookie,當簡單地發起會話爲您代勞:

session_start(); 
// Id is set for you... 
echo session_id();