我有一个我正在研究的CakePHP 2.x网站,它在本地执行。登录工作,会话闪存消息工作等。当我将代码推送到我的staging / prod服务器时,它正在崩溃。
登录不再有效,不显示会话闪存消息,应该重定向到/ user / login的某些控制器操作不显示任何内容(空文档)等。
我不知道问题会是什么。基于我遇到的问题以及我已经完成的一些搜索,我相信在一个仅代码的PHP文件(控制器)中,我在关闭?>
之后排除了像空格这样的问题。我正在使用数据库会话,我看到会在本地实例的数据库中创建会话记录,但不会在远程登台/ prod实例上创建。
非常感谢任何帮助。感谢。
答案 0 :(得分:2)
在你的app / Config / core.php中查看这些内容。
如果您使用的是 SSL和非基于SSL的协议,请确保将cookie_secure设置为false。
Configure::write('Session', array(
'defaults' => 'php',
'ini' => array(
'session.cookie_secure' => false
)
));
尝试将Session的配置从php defaults更改为cake或db as
Configure::write('Session', array(
'defaults' => 'php', // change 'php' to 'cake' or 'database'
'cookie' => 'my_app',
'timeout' => 4320 //3 days
));
还可以尝试将 Session.checkAgent 设置为false,只需一次,以确保它是否是浏览器问题。
尝试更改会话的 Session.name ,默认为“CAKEPHP”
Configure::write('Session', array(
'name' => 'New-Session-name'
'defaults' => 'php', // change 'php' to 'cake' or 'database'
'cookie' => 'my_app',
'timeout' => 4320 //3 days
));
从/ app / tmp
将调试级别设置为1,以执行缓存刷新。如果仍然没有看到错误,请尝试在php.ini中将error_reporting设置为true。 (虽然,这一点非常明显,我仍然指出它,以防你可能错过了它)
希望这有帮助
答案 1 :(得分:2)
我经常遇到的一个建议是确保在仅代码文件中关闭PHP标记之后没有空格(或者最好不要实际关闭PHP标记)。检查我的所有文件表明情况就是这样。然而,不知何故,我设法在AppController.php
中的开始PHP标记之前放置了一个换行符,这就是问题所在。我向任何浪费时间的人道歉。我希望这可以帮助将来笨拙地犯同样错误的人。