0

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

遵循我与 Firebug 的会话方式:

  1. 当我登录页面时,我有一个 Sessionid,并且在 tmp/sessions 文件夹中我也有相应的 sess_{sessionid} 文件。
  2. 在某些页面(完全随机)上点击几下后,我的 sessionid 发生了变化,我被“注销”了。我登录的会话文件保留在目录中。

我现在在 core.php 中的会话设置:

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

我使用的是 2.3.8 版本的 Cake。


更新:

多亏了尼克,我终于找到了问题。我检查了 Cakephp 错误文件,发现我只是在访问包含不在服务器上的元素的页面时才被注销(例如缺少图片)。所以我去了 Firebug,并检查了 Net 选项卡上的内容。在新的主机服务上,我收到了 404 Not Found 响应和在响应中设置的新会话 ID,而在其他服务器上我测试了页面,我只是得到了 404 Not Found。如果我随机生成指向不存在文件的链接,例如 ( domain/test.jpg),我会得到相同的结果。

4

2 回答 2

0

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

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

有一个 CakePHP shell 可用于查找空格

于 2013-10-13T16:15:18.140 回答
0

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

Configure::write('Session', array(
'defaults' => 'php',
'cookie' => 'yourdomain',
'timeout' => 44640,
));
于 2013-10-13T05:49:20.280 回答