我有一个刚刚从 1.1 升级的 CakePHP 1.2 版本。不幸的是,会话无法正常工作。
我在 stackoverflow 上的其他线程上花费了数小时,尝试了提供的解决方案,但到目前为止,没有任何效果。
当用户在以下位置登录时:accounts/login,我在 accounts_controller.php 中像这样设置会话。
$this->Session->write('Account', $someone['Account']);
print_r($this->Session->read());
$this->redirect("/accounts/profile");
exit;
会话肯定会被保存,因为读取显示了所有正确的会话信息。然而,一旦它重定向到 /profile,一切都消失了。
function profile() {
print_r($this->Session->Read());
这个的输出是:
Array ( [Config] => Array ( [userAgent] => [time] => 1376738563 [timeout] => 10 ) )
我已将蛋糕的安全级别设置为内核低,但仍然无法正常工作。
Configure::write('Security.level', 'low');
我的问题与这个问题基本相同: Cakephp session is destroy after redirect
但我确信我的会话正在保存(我打开硬盘上的会话文件进行验证)。并且没有针对该问题提供其他解决方案。
我还发现这个线程很有帮助,但是那里给出的解决方案也对我不起作用: cakephp lost session variable when redirect
我对 php.ini 设置不是很熟练。我可能错过了一些非常简单的事情,但我正要拔掉我的头发。你能告诉我我可能会错过什么吗?
如果有人觉得有帮助,我很乐意发布我的 php.ini 文件和 core.php 蛋糕文件。
以下是相关的核心设置:
Configure::write('Session.save', 'cake'); //I have tried 'php' also
Configure::write('Session.cookie', 'CAKEPHP');
Configure::write('Session.timeout', '120');
Configure::write('Session.start', true);
Configure::write('Session.checkAgent', false);
Configure::write('Security.level', 'low');
在阅读了这个帖子后,我在下面添加了这些:cakephp lost session variable when redirect 它之前或之后都不起作用。:)
Configure::write('Security.cookie', 'cakephpfdebackend');
Configure::write('Session.cookieTimeout', 10000);
Configure::write('Session.cookie_secure',false);
Configure::write('Session.referer_check' ,false);
Configure::write('Session.defaults', 'php');
我的浏览器启用了 Cookie,我尝试了 firefox 和 chrome。我现在在 localhost 上工作,所以我可以完全访问所有文件。请提出任何必要的问题 - 我很绝望。
编辑:我能够将我的站点推送到一个实时服务器,我知道该服务器上的其他站点的一切正常。我的网站在该服务器上运行得很好。这验证问题出在我的计算机/apache/php 上的设置上。