在重定向之前设置cookie

时间:2011-06-08 09:57:57

标签: php cookies redirect header

我正在尝试在标头重定向之前设置一个Cookie,但它无效。我已经读过在标题重定向行之后设置cookie应该可以解决问题,但我没有运气。同样,此前的帖子建议如果您在位置重定向中使用“人工URL”,则应在Cookie的path参数中使用“/”。这也没有运气。

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

另请注意,我已通过注释标题重定向然后单击链接来更改页面来测试此项。然后cookie在var_dump()上显得很好。

我正在使用PHP 5.3+开发XAMPP。我已经在IE 8和Firefox 4中进行了测试。

任何帮助都会很棒。感谢。

2 个答案:

答案 0 :(得分:2)

setcookie代码应位于header代码之前,并确保在停止任何输出后执行exit()

您是否确定它会转到同一个域(http://site.comhttp://www.site.com之间存在差异)?尝试在.site.com中将域选项设置为setcookie,以便可以在所有子域中访问它。

答案 1 :(得分: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。