我根据网址中的GET变量设置了一个Cookie:
if (isset($_GET['this'])) {
setcookie('this', $_GET['this'], time() + (86400 * 30), "/");
}
echo $_COOKIE['this'];
所以,如果我加载页面:
mypage.php?this=that
页面没有回音。但是如果我再次刷新页面,它会读取cookie并回显它的价值。
我认为页面在设置cookie数据之前输出并且能够被读取。任何想法如何纠正这个?
答案 0 :(得分:1)
我相信cookie val在下一个请求之前是不可用的...它是PHP功能。如果您需要在此请求中输出它,您可以尝试回显GET值:
<?php
//imaginary code setting coookie
$_COOKIE['this'] = $_GET['this'];
//simplified pseudo code
if(isset($_COOKIE['this'])){
echo $_COOKIE['this'];
}
else
{
echo $_GET['this'];
}
?>
答案 1 :(得分:0)
这正是Cookie的工作原理:
http://php.net/manual/en/features.cookies.php
常见陷阱:
在下次加载可以看到Cookie的网页之前,Cookie才会显示。测试cookie是否是 成功设置,之前检查下一个加载页面上的cookie cookie到期。过期时间通过expire参数设置。一个 调试cookie存在的好方法是简单地调用 的print_r($ _ COOKIE);