好吧,我完全困惑了。
这是我的代码:
if ($password == $correct_password[0] && !isset($_COOKIE['user'])) {
setcookie("user", $email, time() + 3600);
var_dump(isset($_COOKIE['user']));
echo "!";
}
所以它正在执行var_dumps,这意味着应该调用setcookie。但它后面的行(检查它是否设置好)说它没有设置!
如果有人能指出这个问题,我们将不胜感激。感谢
$_COOKIE在脚本第一次启动时填充/加载,然后在脚本生命周期内由PHP再次更新。通过setcookie设置cookie只会在脚本的NEXT执行时显示在$_cookie中。
这适用于除$_SESSION之外的所有超级全局变量。它们在脚本启动时被填充/初始化,然后PHP再也不会接触它们$_SESSION是在调用session_start()
时填充的(或者会话设置为自动启动),这可能在脚本的生命周期内多次执行。
PHP是一种服务器端语言
这意味着它可以生成它想要的任何内容,然后将其传递给客户端
就这样。
一个请求不存在前后矛盾。
1º you instruct the page 'A' to set a cookie
2º client recieves page 'A' and sets the cookie
3º client asks for page 'B' (sending the cookie)
4º server can identify the cookie (only on page 'B')
这里的页面是用来理解服务器调用的简单方法
为此,您可以两次请求同一页面。
仍然没有找到一个可靠的有效答案,但经过无数小时的测试,这似乎是随着时间的推移。如果我将到期日期设置得太接近实时,可能它没有注册或其他什么。当我进一步设定时间时,这似乎奏效了,但在再次进行繁重的测试之前,我要休息一下。感谢
当您使用setcookie()时,它将在下次加载HTML时保存其值。如果您想查看带有您刚刚分配的值的vardump,则需要使用$_COOKIE['COOKIE_name']=$value;