我有一个使用Cakephp开发的应用程序。会话也适用于本地主机。我看到会话可以设置,并在localhost中读出,我也可以看到在php.ini中定义的sesssion_save_path创建的会话文件。
首先,我写了一个小会话检查php文件来测试共享主机,我100%确定共享主机在会话中没有问题。
但是,会话似乎无法在共享主机上运行。我可以设置一个会话,我也可以看到在主机上创建的会话文件,但是当我刷新它时,并执行: $这 - >会话而>读( “User.id”); $这 - >会话而>检查( “User.id”);
什么都没有。
我该怎么办?它与cakephp缓存有什么关系吗?
答案 0 :(得分:3)
首先我们要提到的是,我们不是CakePHP专家,因此我们可能无法提供最佳答案。
我们在共享托管环境中测试CakePHP 2.2中的会话,使用以下示例脚本/控制器:
public function index() {//The default action for a CakePHP controller
CakeSession::start();
echo 'Hello world.<hr/>';
// test that the session actually works
$counter = 0;
if ( $this->Session->check('counter') ) {
$counter = $this->Session->read('counter');
} else {
echo 'Creating session' . PHP_EOL;
}
++$counter;
$this->Session->write('counter', $counter);
echo "You were here {$counter} time(s)\n\n";
var_dump($this->Session->read('counter'));
}
似乎会话数据已保存并正确读取。如果在ICDSoft的服务器上仍然存在CakePHP安装问题,我们建议您联系我们的支持团队。我们可能无法始终提供适当的调试支持,但我们总是愿意尝试。
致以最诚挚的问候,
ICDSoft团队
答案 1 :(得分:0)
查看分配给浏览器的CakePHP cookie,以查看会话ID是否不断变化。如果确实如此,那么您的会话就不会被保留。
其次,值得检查$_SESSION
超全球是否也可用。