0
<?php
    setcookie("name", "abc");
    echo $_COOKIE["name"];
?>

当我重新加载此页面时,屏幕上什么也没有显示。为什么?

但再次重新加载,显示 abc。

为什么??

4

2 回答 2

11

当您设置 cookie 时,它​​在下一页加载之前不可用。

这在文档中非常清楚地列出,您应该阅读。

一旦设置了 cookie,就可以在下一页加载时使用 $_COOKIE 或 $HTTP_COOKIE_VARS 数组访问它们。注意,像 $_COOKIE 这样的超全局变量在 PHP 4.1.0 中可用。Cookie 值也存在于 $_REQUEST 中。

直到下次加载 cookie 应该可见的页面时,cookie 才会变得可见。要测试 cookie 是否设置成功,请在 cookie 过期之前检查下一个加载页面上的 cookie。过期时间通过 expire 参数设置。调试 cookie 存在的一个好方法是简单地调用 print_r($_COOKIE);。

于 2012-05-22T14:31:16.063 回答
0

Cookie 会作为您页面的 HTTP 响应的一部分发送,因此在您发送响应之前它们不存在。这就是为什么您必须重新加载页面才能看到该值。

于 2012-05-22T14:31:32.213 回答