【问题标题】:What am I missing about declaring and accessing a basic cookie with PHP?关于使用 PHP 声明和访问基本 cookie,我缺少什么?
【发布时间】: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 传输。)

标签: php apache cookies


【解决方案1】:

确保将 setcookie() 函数放在 标记之前。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-26
    • 2019-02-27
    • 2020-11-05
    • 1970-01-01
    • 2021-05-23
    • 2014-04-21
    • 1970-01-01
    • 2016-05-04
    相关资源
    最近更新 更多