我有一个使用Cakephp开发的应用程序。会话也适用于本地主机。我看到会话可以设置,并在localhost中读出,我也可以看到在php.ini中定义的sesssion_save_path创建的会话文件。
首先,我写了一个小会话检查php文件来测试共享主机,我100%确定共享主机在会话中没有问题。
但是,该会话似乎无法在共享主机上运行。我可以设置一个会话,我也可以看到在主机上创建的会话文件,但是当我刷新它时,执行:$ this-> Session-> read(“User.id”); $这 - >会话级>检查( “User.id”);
空无一物。
我该怎么办?它与cakephp缓存有什么关系吗?
首先,我们想提一下,我们不是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团队
看一下分配给浏览器的CakePHP cookie,看看会话ID是否在不断变化。如果是,那么您的会话不会被持久化。
其次,值得检查$_SESSION
超全球是否也可用。