【问题标题】:PHP Sessions/cookies not storing correctly when using IE6/IE7使用 IE6/IE7 时 PHP 会话/cookie 无法正确存储
【发布时间】:2012-01-16 19:21:42
【问题描述】:

我们有一个本地 Intranet 站点,网络上的每个人都可以使用它。可能有 5%(甚至更少)使用该网站的用户存在会话未正确存储的问题。

我尝试手动定义路径 (C:/Coookieess) 并检查发生了什么。尽管大多数用户的会话都已创建并保持正常,但在受影响的机器上,它似乎要么忘记了 cookie 的存在,要么无法读取它们,然后几乎每次刷新页面时都会继续创建新的 cookie .

需要注意的是……

  • 它只影响
  • 只有在使用 IE 时才会发生
  • 无论他们使用什么机器,这些用户都会遇到这种情况
  • 它只发生在 Windows XP 或 Vista 上 - Windows 2000 可以正常工作!

我也尝试过弄乱 IE 中的安全设置,将 cookie 安全性更改为允许所有 cookie/会话,但不幸的是也没有运气:(

任何帮助都会令人惊叹。我真的被困在这上面了。

谢谢!

【问题讨论】:

  • 您能否发布一下您是如何启动会话的?
  • 嗨,克里斯,有点像这样... // session-test.php session_start(); $_SESSION['testing'] = "只是测试..."; // session-test2.php echo '
    '; print_r($_SESSION);回声'
    ';干杯(不知道如何对格式进行排序,抱歉)
  • 没有任何帮助,但我在这里发布了类似的内容:stackoverflow.com/questions/1464477/session-unexpectedly-lost 也没有解决方案。让我发疯。

标签: php cookies internet-explorer-6 internet-explorer-7 session


【解决方案1】:

只是一个随机的想法,可能不相关,但值得一提以防万一 - 您遇到问题的计算机上的日期和时间设置是否正确?

【讨论】:

  • 另一个好建议谢谢,是的,不幸的是时间/日期完全匹配:(
【解决方案2】:

我遇到了完全相同的问题,发现在开始会话之前添加 P3P 标头更正了它。

header('P3P: CP="IDC DSP COR CURa ADMa OUR IND PHY ONL COM STA"');

session_start();

【讨论】:

  • 这对我有用,我认为这与 Compacy 隐私政策框架有关。
【解决方案3】:

您可能想要检查的另一件事:他们是否使用任何类型的代理?

当应用程序在内网上运行时,我参与的一个 PHP 项目似乎遇到了会话问题。原来,所有的 IE 安装都被设置为通过公司代理运行,这似乎时不时地搞砸了......

【讨论】:

    【解决方案4】:

    当网站没有感知到存在或从前一个请求传递过来时,可以创建一个新的 cookie...

    网站、您的网络或您的客户端是否有任何东西导致 cookie 哈希在请求之间不传播?

    使用 HTTP 分析器(fiddler、nettool)找出答案。

    【讨论】:

    • 感谢欧米茄!我会看看使用 nettool
    【解决方案5】:

    确实没有足够的信息继续下去,但可能发生的一件事是,如果您将会话存储在 cookie 中,您可能会得到一个太大的 cookie,IE 无法处理。

    不过,“太大”的定义因浏览器和操作系统而异。

    【讨论】:

    • 这是一个很好的建议,谢谢,但是有问题的 cookie 只有 1kb 左右,并且可以在大多数机器上工作......今天再次测试了很多,是的,完全相同的计算机,完全相同IE6/IE7 版本对某些用户会有不同的结果:(
    【解决方案6】:

    您的内部域中是否有下划线?即http://dev_server.example.net

    使用下划线作为 DNS 字符有点模糊。 FF/Safari 可以正常工作,但如果 cookie 来自带下划线的域,IE 将无法设置 cookie

    大多数公共注册商会阻止您使用不良字符,但在内部没有什么可以阻止您。

    【讨论】:

    • 嘿,很抱歉迟到了愚蠢的回复,但不,很遗憾,没有下划线 - 虽然非常好,如果相关的话,它确实有一个破折号
    【解决方案7】:

    不久前我们遇到了一个看起来与此相同的问题 - 零星的外观,只影响老 IE 用户。

    当时任何资源或评论都非常模糊,因此我们无法完全诊断问题 - 我们发现的最接近的信息与 IE 无法很好地处理 g-zip 压缩数据有关。

    无论如何 - 我们发现解决了我们的问题的解决方案 -

    1. 通过 PHP 手动设置内容类型标头,同时删除 HTML 声明

    header("content-type: text/html; charset=utf-8");

    1. 将您的网站设置为发送 P3P(紧凑型安全策略)标头。

      http://www.sitepoint.com/article/p3p-cookies-ie6/2/

    【讨论】:

      【解决方案8】:

      会不会有 5% 的用户有用户信息,当从 cookie 中检索时,会破坏 cookie 服务器端的正确读取/解码/解析?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-10-14
        • 1970-01-01
        • 2018-10-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-15
        相关资源
        最近更新 更多