【问题标题】:Cookie intermittently loses values in PHPCookie 在 PHP 中间歇性丢失值
【发布时间】:2013-12-11 01:21:18
【问题描述】:

我们的网站 (PHP/Linux/Apache) 出现错误,其中 $_COOKIE 全局变量在某些页面上丢失了所有值。这通常是在跟随带有 GET 参数的链接或提交 POST 表单之后。我真的很困惑为什么会突然出现这种情况。为了说明,当我浏览网站时,我已经在每个页面上转储了 $_COOKIE 变量的值(一些值被 xxx 替换)。

主页(一切正常):

Array
(
    [nav-hosting] => 1
    [nav-server_management] => 1
    [locale] => en-US
    [psaContext] => tools
    [mycart] => xxx
    [myid] => xxx
    [__utma] => xxx
    [__utmb] => xxx
    [__utmc] => xxx
    [__utmz] => xxx
)

提交站点搜索表单后的结果页面(一切正常):

Array
(
    [nav-hosting] => 1
    [nav-server_management] => 1
    [locale] => en-US
    [psaContext] => tools
    [mycart] => xxx
    [myid] => xxx
    [__utma] => xxx
    [__utmb] => xxx
    [__utmc] => xxx
    [__utmz] => xxx
)

从搜索结果中点击进入某个页面(出现问题):

Array
(
    [1] => 
)

因此,$_COOKIE 莫名其妙地具有索引 1 和空值。任何人都可以提出可能导致这种情况的原因吗?

从有问题的最后一页进一步单击将再次恢复所有原始值。莫名其妙!

【问题讨论】:

  • 请发布一些代码,例如您如何在每个页面上获取 cookie。仅靠结果来帮助几乎是不可能的 =)
  • 使用浏览器的开发工具(所有主流浏览器都有)确保Cookie 和相关的标头在每个请求中都被发送/接收。对于未发送 cookie 数据的请求,请查看是否从服务器接收到 不同 SetCookie 标头(或根本没有)。
  • 访问cookie:if (isset($_COOKIE['myid'])) { // do something with $_COOKIE['myid'] }设置cookie:setcookie('myid', $_COOKIE['myid'], time()+60*60*24, "/", ".".str_replace("www.","",$_SERVER['HTTP_HOST'])); // 24 hours
  • 我也会看看浏览器的开发工具

标签: php cookies


【解决方案1】:

由于您没有提供任何代码,我猜:您是在另一个子域上,还是移出您的 cookie 有效的路径?

【讨论】:

  • 对两者都没有,这一切都发生在同一个域上,没有子域,并且 cookie 从根开始有效。
猜你喜欢
  • 2018-09-17
  • 1970-01-01
  • 1970-01-01
  • 2013-08-23
  • 2011-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多