会话已启动,但未在Cakephp中找到

会话已启动,但未在Cakephp中找到,php,session,cakephp,Php,Session,Cakephp,我有一个我工作的应用程序遇到了一个问题,随机加载一个空白页 我发现beforeFilter函数会启动,但它从未进入当时正在调用的控制器的操作中。我还发现,发生这种情况时无法找到会话。session_status返回PHP_session_NONE。当重新加载页面时,php可以神奇地再次找到会话,页面正常加载 感谢您的帮助。如果你需要/想要更多信息,请告诉我 编辑: AppController前置过滤器 public function beforeFilter() { paren

我有一个我工作的应用程序遇到了一个问题,随机加载一个空白页

我发现beforeFilter函数会启动,但它从未进入当时正在调用的控制器的操作中。我还发现,发生这种情况时无法找到会话。session_status返回PHP_session_NONE。当重新加载页面时,php可以神奇地再次找到会话,页面正常加载

感谢您的帮助。如果你需要/想要更多信息,请告诉我

编辑:

AppController前置过滤器

public function beforeFilter() {

        parent::beforeFilter();

        // Log all access to applictaion
        $this->AccessLog->logPageAccess($this->request, $this->Session);

        // Read the app's desired datetime display and set as view variable for TimeHelper use.
        if(Configure::check('Datetime.dateDisplayFormat')) {
            $timeFormat = Configure::read('Datetime.dateDisplayFormat');
            $this->set(compact('timeFormat'));
        }
    }
找到会话时会话身份验证用户

array(
    'password' => '*****',
    'id' => '44',
    'role_id' => '5',
    'username' => 'user',
    'password_token' => null,
    'email' => 'user@example.com',
    'email_verified' => true,
    'email_token' => null,
    'email_token_expires' => null,
    'active' => true,
    'is_login_locked' => false,
    'last_login' => '2015-02-04 16:41:47',
    'last_action' => null,
    'created' => '2014-07-07 12:45:46',
    'modified' => '2015-02-04 16:41:47',
    'created_by' => '19',
    'modified_by' => '44',
    'deleted' => false,
    'deleted_date' => null,
    'account_locked' => false,
    'lu_theme_id' => '4',
    'first_name' => 'Joe',
    'last_name' => 'Bloggs',
    'Role' => array(
        'id' => '1',
        'name' => 'User',
        'is_admin' => false
    )
)
$\u找不到时的会话

array()

您是否在负载平衡器下运行服务器阵列?我以前在这种类型的环境中看到过会话奇怪的情况。

我们的生产环境是这样运行的,但这个问题也发生在我们的开发服务器上,它也是一台服务器。您能否将beforeFilter函数粘贴到这里,并简要描述您在会话中存储的内容?i、 e.是否由该组件构建?如果只有登录用户才能访问变为空白的视图,或者通过beforeFilter将其解锁,那么这种情况是否会发生在所有地方,还是只发生在特定的控制器/视图上?这种情况在应用程序中随处可见。请参阅上面的“编辑”以获取所需的代码。我想您在任何地方都运行相同的beforeFilter?如果运行debug,您会得到任何反馈吗?例如,您是否尝试过放置一个测试变量,并查看调试是否在出现问题时将其打印到屏幕上?当错误发生时,你会得到一个白色的死亡屏幕吗?在这种情况下,代码在某个地方失效了。如果是这样的话,我会试着注释掉记录访问的那行代码,看看bug是否还在继续——也许有什么东西掉在这里了。