【问题标题】:Kohana 3.3 - Sessions not set in IEKohana 3.3 - IE 中未设置会话
【发布时间】:2014-01-23 20:00:41
【问题描述】:

在 Kohana 中未设置会话时遇到问题。

情况概览:

  • Kohana 3.3
  • PHP 5.3.x
  • 使用数据库会话
  • Chrome、Firefox、Safari(OSX) 都正常工作。
  • Internet explorer- 会话未在版本 8-10 上设置(使用开发工具仿真进行测试)
  • 甚至没有在数据库中创建会话,当没有设置加密密钥时也会发生这种情况(巧合?)
  • 可能的曲线球 - 服务器位于负载平衡器后面。持久性已开启并正在工作,这实际上是负载均衡器背后的唯一服务器,因此持久性不太可能是罪魁祸首。

我已经仔细研究了代码,但找不到任何会导致这成为 IE 问题的任何内容。

URL 或主机名中的任何地方都没有dreaded underscores,无论我将Cookie::$domain 设置为什么,结果都是一样的。

session.php 设置文件:

return array(
    'native' => array(
        'name' => 'session_native',
        'lifetime' => 43200,
        'encrypted' => TRUE,
    ),
    'cookie' => array(
        'name' => 'session_cookie',
        'encrypted' => TRUE,
        'lifetime' => 43200,
    ),
    'database' => array(
        'name' => 'session_database',
        'encrypted' => TRUE,
        'lifetime' => 43200,
        'group' => 'default',
        'table' => 'sessions',
        'columns' => array(
            'session_id'  => 'session_id',
            'last_active' => 'last_active',
            'contents'    => 'contents'
        ),
        'gc' => 500,
    ),
);

已设置Session::$default = 'database';,但似乎与仅限 IE 的问题无关。还使用native 会话进行了测试,结果相同。

有什么想法或见解吗?感觉好像我错过了一些非常明显的东西

【问题讨论】:

  • 设置Session::$default = 'native';是否有效?了解这一点将有助于缩小查看范围。
  • 它没有。我应该把它包括在内 - 我将编辑原始帖子。
  • 使用WireSharkFiddler 之类的工具来捕获请求的HTTP 标头——对于IE 和任何工作的浏览器,并寻找CookieSet-Cookie 标头。让我们知道你发现了什么。 (您可以在 GistPastebin 中发布完整的标题 - 如果您认为有必要,请先将它们匿名。)
  • 感谢输入,终于可以解决玩IE的安全设置了。
  • 我们不在标题中使用[SOLVED]。如果您已经回答了自己的问题,请发布答案并接受它,或者删除问题。谢谢。

标签: php internet-explorer session kohana kohana-3


【解决方案1】:

已解决:

原来是缺少 Compact 隐私政策。默认情况下,IE 有更严格的隐私设置,添加下面的标题解决了这个问题(不理想但不需要制作整个 P3P 文件)。

/**
 * Added for P3P cookie support
 */
header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-22
    • 2019-12-29
    相关资源
    最近更新 更多