2017-01-03 79 views
0

這是我第一次涉及cookie。我無法讓它工作,所以我從字面上複製並粘貼了w3schools的例子。在「嘗試它!」但是當我在本地主機上運行我自己的文件中的代碼時,它不會設置cookie。它輸出「Cookie名爲'用戶'未設置!」每次。setcookie()沒有設置任何cookies

 $cookie_name = "user"; 
     $cookie_value = "John Doe"; 
     setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); 

     if(!isset($_COOKIE[$cookie_name])) { 
      echo "Cookie named '" . $cookie_name . "' is not set!"; 
     } else { 
      echo "Cookie '" . $cookie_name . "' is set!"; 
      echo "Value is: " . $_COOKIE[$cookie_name]; 
     } 

這沒有重定向頁面或任何東西。它只是不設置cookie。我正在使用Chrome和MAMP。 Chrome在Chrome中啓用了Cookie,並且在php.ini中cookie也顯示爲ON。我也嘗試在Firefox和Safari瀏覽器中運行它。請幫我理解

+0

'setcookie()'不會立即更改'$ _COOKIE []'。 – mario

+0

你確定在setcookie之前文件中沒有其他輸出嗎? – swordbeta

回答

0

setcookie()定義了一個cookie和其餘的HTTP頭一起發送。像其他標題一樣,Cookie必須在腳本輸出之前發送(這是協議限制)。這要求您在任何輸出之前調用此函數,包括標記以及任何空格。

一旦Cookie已設置,它們可以在下一頁加載$ _COOKIE數組訪問。 Cookie值也可能存在於$ _REQUEST中。