【发布时间】:2013-04-11 05:29:47
【问题描述】:
出于某种原因,我认为我编写的这段代码运行良好。也许是这样 - 但现在不是。
我正在使用相同的变量设置会话和 cookie,如下所示:
session_start();
$id = 1;
// store the session
$_SESSION['mynumber'] = $id;
// store the cookie
setcookie('mynumber', $id);
然后我刷新页面,那里有代码:
echo $_SESSION['mynumber'] . '---' . $_COOKIE['mynumber'];
我的结果是:
1---
为什么 cookie 没有回显?
【问题讨论】:
-
在
setcookie上阅读完整文档。您可能希望在调用中添加其他参数。默认域可能不正确,或者您的 cookie 可能会立即过期。 -
@NicholasPickering 我简化了上面的代码。在我的代码中,我的 cookie 设置为: setcookie('mynumber', $id, time()+215308800, '/', '.thedomainthecookieison.com',true);那是不是意味着 cookie 不会长时间过期,并且会跨越整个域?
-
该代码对我来说看起来不错...检查您的浏览器中是否真的有一个 cookie 用于您的域。您可以针对每个浏览器进行不同的检查。我仍然敢打赌,要么域名错误,要么 cookie 已过期。此外,在 $_COOKIE 上使用
var_dump以确保其为 false 或 NULL。否则,其中有一些东西,并且那个东西是一个空字符串。 -
好的,干杯。我会看看我能用它做什么。
-
因为它是一个安全的 cookie,您是否通过 HTTPS 连接? (
setcookie调用中的最后一个参数表示 cookie仅通过 https 传输。)