我有这个页面,它设置一个 cookie,并在您选中复选框时回显一个字符串。字符串打印正确,但 cookie 从未被设置,我不知道为什么。
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
<label for="checkbox">Option 1:</label>
<input type="checkbox" name="checkbox" id="checkbox"><br>
<input type="submit" name="submit" value="Submit">
</form>
<?php
if (isset($_POST['checkbox'])) {
setcookie("cookie", "on", time()+3600*24);
echo "You checked the checkbox and a cookie was set with a value of:<br>";
}
else {
setcookie("cookie", "off", time()+3600*24);
echo "You didn't check the checkbox and a cookie was set with a value of:<br>";
}
echo $_COOKIE['cookie'];
?>
有谁知道为什么上面的代码不起作用?
PHP 超全局变量在脚本启动时填充,然后在脚本的生命周期内不再被 PHP 修改或触及。这意味着$_COOKIE
表示在启动脚本的 http 请求中发送到服务器的 cookie。它不会显示您在脚本生命周期内添加/更改/删除的任何 cookie。这些更改只会显示在下一个请求中。
唯一的例外是$_SESSION
,当您调用时会填充session_start()
.
如果您需要立即将这些值放入 $_COOKIE 中,则必须手动添加它们,例如
setcookie('cookie', $value, ....);
$_COOKIE['cookie'] = $value;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)