【发布时间】:2012-09-17 02:50:44
【问题描述】:
如何让 cookie 在 php 中持久化?
give_cookie.php
<?php
if (!isset($_COOKIE["muffin"]))
setcookie("muffin", "55", 100 * 60 * 60 * 24 * 30);
$_COOKIE["lid"]=true;
?>
jar.php
<?php
var_dump($_COOKIE);
if($_COOKIE["lid"])
echo "open";
?>
按该顺序运行代码会给我输出:
array(0) { } 注意:未定义索引:第 3 行 jar.php 中的盖子
将jar.php 中的代码嵌入give_cookie.php 会得到输出:
array(1) { ["lid"]=> bool(true) } 打开
【问题讨论】:
-
哦,等等,也许我需要将到期时间添加到当前日期?
-
Iirc,在 setcookie 之后的以下请求之前,cookie 对 PHP 不可用。如有错误请指正。
-
另外,我不确定设置 $_COOKIE 数组是否真的会发送 cookie。也可以试试 setcookie 作为“盖子”。
-
请注意,cookie 存储在浏览器中,而不是 PHP 本身。如果您发送 cookie,浏览器将在下一个请求中将其发回。
-
@JonStirling,你是对的。但是,他给全局变量
$_COOKIE["lid"]设置了一个值,而不是正确地设置,所以它在同一个脚本中可用,但在下次刷新时不可用。
标签: php cookies session-cookies setcookie