PHP – setcookie()无法正常工作

提姆

我有此页面,该页面设置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'];
  ?>

有谁知道为什么上面的代码不起作用?

马克·B

PHP超全局变量在脚本启动时填充,然后在脚本生命周期内不再被PHP修改或触及。这意味着$_COOKIE代表在启动脚本的http请求中发送到服务器的cookie。它不会显示您在脚本有效期内添加/更改/删除的任何cookie。这些更改将仅在NEXT请求中显示。

唯一的例外是$_SESSION,当您调用时会填充它session_start()

如果您需要立即将这些值包含在$ _COOKIE中,则必须手动添加它们,例如

setcookie('cookie', $value, ....);
$_COOKIE['cookie'] = $value;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章