我在AppController.php中包含了'Session'组件和帮助器
现在,如果我使用$this->Session->write('App.testString', 'test);
,则不会创建会话,或者至少我在echo $this->Session->read('App.testString');
时没有收到字符串。
我是否必须更改Sessions的任何设置?
在控制器功能中,我可以编写和读取会话,但是如果我想在不同的函数(同一个控制器)中读取会话,我就不会得到一个值。
答案 0 :(得分:6)
我找到了解决方案:默认情况下,CakePHP使用php.ini中设置的文件夹。在我的托管环境中无法访问此文件夹(我不允许更改php.ini)。
在这种情况下,您必须更改存储会话文件的 core.php 。这就是我之前所拥有的:
Configure::write('Session', array(
'defaults' => 'php'
));
我把它改成了这个:
Configure::write('Session', array(
'defaults' => 'cake'
));
这样,cake使用自己的tmp文件夹来存储会话文件。还要确保tmp文件夹及其子文件夹是可写的。