【问题标题】:PHP cake subdomains session link problem?PHP 蛋糕子域会话链接问题?
【发布时间】:2011-09-24 00:43:38
【问题描述】:

我对 php cake 会话和子域有疑问。我已经成功设置好了。当我尝试从

subdomain1.domain.com 

subdomain2.domain.com 

当我输入这些浏览器 url 时,一切都很好......当我尝试使用 <a href=""> tag 进行此操作时,问题出现了,在重定向的子域上我将收到新的会话 ID。

我无法向自己解释这怎么可能,纯 php 脚本工作正常,但在 php cake 中就是这个错误!感谢您的任何建议...

【问题讨论】:

    标签: php session cakephp subdomain


    【解决方案1】:

    好的,我调试了整个 php cake session 组件和库,我想出了 2 个解决方案

    1. 更简单 - 在 core.php 中将安全级别设置为低

      配置::write('Security.level', 'low');

    2. 高级 - 为会话创建新的配置文件,就像 Ivo 说的,它在教程 http://book.cakephp.org/view/1310/Sessions 中,最重要的是设置

      ini_restore('session.referer_check'); 因为默认情况下 php cake 检查引用者,如果它不在同一个域中,则会导致生成新的 SESSIONID

    【讨论】:

      【解决方案2】:

      我认为这与蛋糕无关。 默认情况下,PHP 会给你一个域的会话。

      • subdomain1.domain.com 是一个域,
      • subdomain2.domain.com 是另一个域
      • domain.com 是另一个不同的域
      • www.domain.com 是另一个不同的域

      所有这些示例都是 4 个不同的域,有自己的会话。

      如果你想在多个(子)域之间共享会话,你可以尝试设置 session.cookie_domain 变量,像这样;

      ini_set("session.cookie_domain","domain.com") ;

      【讨论】:

      • 抱歉,但就像我说的“我已经成功设置了所有内容”,其中包含,并且必须是 ini_set("session.cookie_domain",".domain.com");为了更正,就像我说的那样,它在纯 php 中工作,但在具有相同配置的 phpcake 中没有......所以感谢您的回复,但这不是正确的答案
      【解决方案3】:

      尝试改用这个:

      http://book.cakephp.org/view/1310/Sessions

      按照说明为 cake 的会话保存创建自定义配置。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多