2011-06-08 97 views
2

我試圖在標題重定向之前設置一個cookie,但它不起作用。我已經閱讀過在標題重定向行應該解決問題之後設置cookie,但我沒有運氣。同樣,這裏的帖子先前建議如果您在位置重定向中使用了「人員網址」,則應在Cookie的路徑參數中使用「/」。這也是沒有運氣的。在重定向之前設置cookie

header("Location: $url" . $params); 
setcookie('cartstlang', 'lang', 0, '/', '', FALSE, FALSE); 
setcookie('cartstdb', 'db', 0, '/', '', FALSE, FALSE); 

另請注意,我已經通過註釋掉標題重定向然後單擊鏈接來更改頁面來測試此操作。這些cookies在var_dump()上顯得很好。

我使用PHP 5.3+在XAMPP上開發。我已經在IE 8和Firefox 4中測試過。

任何幫助都會很棒。謝謝。

+1

聽到行應該在setcookie之後 – 2011-06-08 09:59:07

+1

我也聽到了相反的意思。無論哪種方式,我都嘗試了setcookie調用之前和之後的頭部。 – Pete171 2011-06-08 10:00:48

+0

這是一個聲明,該命令應該是標題 - > setcookie:http://www.php.net/manual/en/function.setcookie.php#96251 – joshuahedlund 2011-12-15 16:50:58

回答

2

setcookie代碼應該在header代碼之前,並確保在執行停止任何輸出後執行exit()

你是否確定它會進入同一個域名(http://site.comhttp://www.site.com之間有區別)?嘗試在setcookie中將域選項設置爲.site.com,以便可以在所有子域中訪問它。

+0

實際上,標題重定向完全轉到不同的域。在經過一些處理後,它會重定向到我的域,然後是我嘗試使用cookie。 我不能在重定向之後包含exit(),因爲它包含的函數必須返回TRUE才能運行其他重要的腳本。我無法控制這個;我正在編寫一個插件,不能更改核心功能。 – Pete171 2011-06-08 10:14:54

+0

那麼你需要進一步調試。在重定向之前檢查cookie是否在瀏覽器中設置,然後轉到頁面,它會將您帶回並檢查cookie是否存在。 – fire 2011-06-08 10:45:14

+0

我檢查過cookie沒有重定向,並且我也確定cookie不在我需要的頁面上。 – Pete171 2011-06-08 11:09:16

1

試試這個

$value = 'something from somewhere'; 

setcookie("TestCookie", $value); 




echo $_COOKIE["TestCookie"]; 
echo $HTTP_COOKIE_VARS["TestCookie"]; 

// Another way to debug/test is to view all cookies 
print_r($_COOKIE); 

和後回你怎麼看的答覆。還要確保啓用了Cookie。

+0

注意:未定義的索引:第3行中的.... \ waiting.php中的TestCookie注意:未定義的變量:第3行中的... \ waiting.php中的HTTP_COOKIE_VARS。 Cookie已啓用;他們設置好,而不嘗試重新標題。 – Pete171 2011-06-08 11:08:30

+0

忽略以上,忘記刷新。 東西從某處 注意:未定義的變量:第2行中的C:\ xampp \ htdocs \ joomla_and_vm \ waiting.php中的HTTP_COOKIE_VAR Cookie被明確設置。謝謝回覆。 – Pete171 2011-06-08 11:14:23

相關問題