php - 为什么我在 PHP 中使用 cookie 时得到 undefined index ?

标签 php cookies

如果我使用下面的基本代码

if (!defined('NAME_COOKIE') )
 define('NAME_COOKIE', "storedusername");

$cookie_domain = ".".$_SERVER['HTTP_HOST'];

setcookie(NAME_COOKIE, $username,time() + (86400),"/", $cookie_domain);
print $_COOKIE[NAME_COOKIE];

脚本在打印过程中因 undefined index 错误而终止。我做错了什么?

最佳答案

你的台词:

setcookie(NAME_COOKIE, $username,time() + (86400),"/", $cookie_domain);
print $_COOKIE[NAME_COOKIE];

这里发生的事情是您设置了 cookie,这意味着一个字符串被 *添加 到标题中,准备与您的内容一起发送。

将其想象成一个队列,只有在您发送内容时队列才会进入浏览器。

因为您的 cookie 仍在队列中,它实际上并没有被设置,直到页面被发送并且您调用该页面,然后在调用时浏览器将 cookie 信息发送回浏览器,浏览器依次编译 $_COOKIE 数组。

试着这样想:

  • 设置cookie();
    • (加入队列)
  • 尝试$_COOKIE
    • (未找到)
  • 发送内容
    • (浏览器将 Cookie 设置为文件)
  • 刷新
    • (浏览器向服务器发送 Cookie 信息)
  • php 编译
    • (从浏览器数据加载 $_COOKIE)
  • 尝试$_COOKIE
    • (找到)

希望这对您有所帮助。

关于php - 为什么我在 PHP 中使用 cookie 时得到 undefined index ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4730556/

相关文章:

python - 在 Tornado 中删除安全 Cookie

python - 登录页面并获取cookie

php - 在 MySQL 中将日期转换为 Unix 时间戳会出现错误 LIMIT 0、25

php - html 联系表单无法识别 php 文件

php-数据未输入数据库

php - CloudFlare 和 PHP mail() 函数……它们去哪儿了?

php - 在 magento 的管理面板中的网格中添加特价的新列

ios - 我可以设置 WKWebView 使用的 cookie 吗?

http - 无需借助 super cookie 即可确定唯一网站访问者的 JavaScript 代码?

javascript - 每周运行一次 javascript 函数