2016-01-08 93 views
0

自從幾周以來,我注意到我的網站不再保存cookie了。Cookie設置但不存在

如果我刷新幾次此頁:

<?php 
print_r($_COOKIE); 
setcookie('Test', 'Blah', time() + 3600 * 24 * 365, '/'); 
print_r($_COOKIE); 
?> 

餅乾應該有!但我得到:

陣列()()數組

有調試一個常見的方法是什麼?

注意:它不是從this question複製,其答案沒有解決問題。

+0

另一個問題的答案不能解決這個問題。 – Basj

+0

在瀏覽器中打開網絡工具。檢查cookie的響應標頭。它可能是您的瀏覽器,它可能是以前格式錯誤的標題。我們很難調試remotly – Steve

+0

謝謝@Steve。你能展示哪裏/看什麼?也許截圖? (火狐或鉻)? – Basj

回答

0

設置您希望cookie被訪問,

setcookie('Test', 'Blah', time() + 3600 * 24 * 365 * 10, "/"); 

/意味着它是隨處可見的領域。

路徑

其中的cookie將可在服務器上的路徑。如果設置爲「/」,則Cookie將在整個域中可用。如果設置爲'/ foo /',則cookie將僅在/ foo /目錄和所有子目錄(如/ foo/bar/of域)中可用。默認值是當前目錄中的Cookie正在設置英寸

嘗試刷新頁面,因爲它不顯示,直到下一個請求。

閱讀材料

setcookie

2

$_COOKIE包含瀏覽器在當前請求發送的cookie。

setcookie在響應中指示,該響應告知瀏覽器存儲cookie。

直到下一個請求,瀏覽器纔會將該cookie發送回服務器。

如果想讓一個Cookie設置,您可以測試:

  • 看看你的瀏覽器的開發者工具的響應頭
  • 添加一些JavaScript來響應主體,將檢查document.cookie
  • 創建一個新的HTTP請求並使用服務器端代碼來查看它是否包含cookie
+0

好的,但後來,如果我刷新頁面,應該顯示cookied,對吧?不是。 – Basj

0

儘量不要保存它10年。1年已經足夠我相信

setcookie('Test', 'Blah', time() + 3600 * 24 * 365, "/"); 
+0

它沒有改變任何東西。 – Basj