会议已经开始

时间:2016-08-03 13:32:47

标签: php session cakephp-3.x

我正在开发一个基于cakephp 3的项目,该项目在处理器和内存使用方面的php和mysql方面都是中等重量,但是99%的时间都向用户提供完全相同的页面。

所以我决定使用我几年前开发的像this one这样的缓存系统。它只保存完整页面的缓存html文件,避免对每个请求进行所有详细说明。这是一个愚蠢的系统,但它的工作做得很好。

问题是,我需要访问会话变量进行一些检查。为此,我在我的缓存系统中触发session_start(),有时,当页面尚未缓存时,cakephp会抛出此错误:

Session was already started

如何避免此错误?有没有办法在我的缓存系统中关闭会话,以便cakephp最终可以启动一个新的?我尝试使用session_abortsession_register_shutdown(),但是没有用,我甚至不确定这是否是我需要做的正确方法......

编辑:处理流程为:请求 - >缓存系统 - > CakePHP的。因此我的session_start()出现在cakephp之前,我宁愿不接触cakephp核心文件,这就是为什么其他问题对我没用。我想在我的缓存系统中解决这个问题。

1 个答案:

答案 0 :(得分:0)

在尝试调用session_start();

之前,您可以检查会话是否尚未启动
if(!isset($_SESSION)) {
   session_start();
}