Cakephp随机丢弃会话

时间:2013-10-12 17:59:33

标签: session cakephp sessionid

最近我将我的cakephp网站从托管服务移到了另一个网站。该页面就像一个魅力,但现在我遇到了问题,我的会话随机丢失。 我在共享主机服务上,所以我将蛋糕的会话默认值从php更改为cake,现在我的会话被保存到我的tmp / sessions文件夹中。 (但它也没有使用php)

跟随我的会话与Firebug的方式:

  1. 当我登录页面时,我有一个Sessionid,而在tmp / sessions文件夹中我也有相应的sess_ {sessionid}文件。
  2. 点击一些页面(完全随机)后,我的sessionid发生变化,我“退出”了。 我登录的会话文件保留在目录中。
  3. 我在core.php中的会话设置:

    Configure::write('Session', array(
        'defaults' => 'cake'
    ));
    

    我正在使用Cake的2.3.8版本。


    更新

    最后我发现问题归功于尼克。我检查了Cakephp错误文件,发现当我访问包含一个元素的页面时,我才刚刚注销,这个元素不在服务器上(例如图片丢失了)。所以我去了Firebug,检查Net标签的内容。在新的主机服务上,我得到了404 Not Found响应和响应中设置的新会话ID,而在我测试页面的其他服务器上,我只得到了404 Not Found。如果我随机生成指向不存在的文件(domain/test.jpg)的链接,我会得到相同的结果。

2 个答案:

答案 0 :(得分:0)

尝试这些设置,在Firefox中你可以安装web开发扩展,然后你可以查看你的cookie,看看它是否都设置正确。

Configure::write('Session', array(
'defaults' => 'php',
'cookie' => 'yourdomain',
'timeout' => 44640,
));

答案 1 :(得分:0)

检查您用于空格的任何组件(通常位于文件的末尾)。

我最近遇到了这个问题,同时帮助客户使用他们现有的CakePHP网站,当登录一个叫做组件的特定页面时,会杀死$ this-> Session-> read('Auth')。

可以使用CakePHP shell来find whitespace