2016-05-23 116 views
0

我已經嘗試了2個小時,現在在我的頁面上設置cookie,並在互聯網上閱讀很多後,我仍然無法找出我做錯了什麼。 這是我的代碼:setcookie()不工作

<?php 

$cookie_name = "user"; 
$cookie_value = "MyUserName"; 

$days = 86400*30; 
$cookie_time = $days+time(); 

setcookie($cookie_name, $cookie_value, $cookie_time, '/'); 

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

?> 

我回聲的結果是「曲奇命名爲‘用戶’沒有設置!」每次! 有人能幫助我嗎? :)

+2

'setcookie()'設置cookie並在錯誤時返回'false'。如果您至少沒有驗證兩件事情,則無法斷言它不起作用:1)返回值2)HTTP標頭是否在響應 –

+2

中顯示,您當前的驗證不正確。正如[手冊](http://php.net/setcookie)所說:「一旦cookie已經設置,它們可以通過$ _COOKIE數組在**下一頁加載**進行訪問。」 –

+1

您可能會遇到的另一個問題是您正在測試的域名。如果它是本地主機,您應該按照以下步驟操作:http://php.net/manual/ro/function.setcookie.php#73107 –

回答

2

你有你的語法錯誤代碼喲小姐colse的其他statment

試試這個那麼你的代碼將設置cookie

$cookie_name = "user"; 
$cookie_value = "MyUserName"; 

$days = 86400*30; 
$cookie_time = $days+time(); 

setcookie($cookie_name, $cookie_value, $cookie_time, '/'); 

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

當我在這裏寫下它時,我忘了關閉其他語句!這不是問題。 – NickiJey

0

你忘了關else聲明:

else 
{ 
echo "Cookie '" . $cookie_name . "' is set <br/>"; 
echo "Value is: " . $_COOKIE[$cookie_name]; 

提示:您應該打開Error Reporting,將此代碼添加到PHP文件的頂部,這將有助於您查找錯誤。

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 
+0

當我插入錯誤代碼時,我得到了這個:無法修改標題信息 - 標題已經發送。 – NickiJey

+0

@NickiJey你可以發佈完整的代碼? – Panda