【问题标题】:session.cookie_domain not working on all browserssession.cookie_domain 不适用于所有浏览器
【发布时间】:2013-06-25 22:54:23
【问题描述】:

以下代码设置会话cookie如下:

ini_set( 'session.cookie_domain', 'mysite.com' );
  • FF 标头 - 域=.mysite.com
  • IE 标头 - domain=mysite.com(无初始点)
  • Cr 标头 - 域=.mysite.com

以下代码设置会话cookie如下:

ini_set( 'session.cookie_domain', 'dev.mysite.com' );
  • FF - domain=.dev.mysite.com(有效)
  • IE - domain=mysite.com(忽略子域;使用根域,无初始点)
  • Cr - 创建会话失败

尝试将 Session cookie 设置为特定的子域,以便 sub1.dev.mysite.com、sub2.dev.mysite.com 可以访问相同的 Session cookie。但是,它只适用于 FF。


将会话名称设置为 SESS_NAME 之类的名称。

【问题讨论】:

  • 谢谢。不幸的是,他们的解决方案都不起作用。看起来这是一个浏览器问题,因为每个人如何在其输出中实现它。例如,如果我包含子域,Chrome 甚至都无法工作。它适用于 FF。而 IE 会忽略它并改用根域。 Chrome 和 IE 是否有可能在标头中缺少某些无法正确处理的内容?而FF使用默认值?
  • 从 Fiddler 中,原始标头在所有浏览器上都是相同的。在这里,我将其设置为 dev.mysite.com HTTP/1.1 200 OK Date: Tue, 25 Jun 2013 19:48:39 GMT Server: Apache Set-Cookie: SESS_NAME=70nd4k6n1c8c1jt899sm1rk1d7; path=/; domain=dev.mysite.com Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Status: 200 Vary: Accept-Encoding Content-Length: 74632 Keep-Alive: timeout=3, max=100 Connection: Keep-Alive Content-Type: text/html

标签: php session-cookies


【解决方案1】:

有趣的是,我发现 Chrome 不喜欢下划线。 SESS_NAME 与 SESSNAME。

【讨论】:

    猜你喜欢
    • 2023-03-13
    • 1970-01-01
    • 2012-05-23
    • 2015-09-29
    • 2016-10-13
    • 1970-01-01
    • 1970-01-01
    • 2010-11-04
    相关资源
    最近更新 更多