如果我使用下面的基本代码
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/