最近我将我的cakephp网站从托管服务移到了另一个网站。该页面就像一个魅力,但现在我遇到了问题,我的会话随机丢失。 我在共享主机服务上,所以我将蛋糕的会话默认值从php更改为cake,现在我的会话被保存到我的tmp / sessions文件夹中。 (但它也没有使用php)
跟随我的会话与Firebug的方式:
我在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
)的链接,我会得到相同的结果。
答案 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。