У меня есть приложение, в котором я работаю, в котором возникает проблема, когда случайно загружается пустая страница.Сессия началась, но не найдена в Cakephp
Я обнаружил, что срабатывает функция beforeFilter, но она никогда не переходит в действие контроллера, который вызывается в это время. Я также обнаружил, что сеанс, когда это происходит, не может быть найден. session_status() возвращает PHP_SESSION_NONE. Когда страница перезагружается, php может волшебным образом найти сеанс снова, и страница загружается нормально.
Любая помощь приветствуется. Если вам нужна дополнительная информация, просто дайте мне знать.
EDIT:
AppController beforeFilter
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'));
}
}
сессия Auth.User когда сессия найдено
array(
'password' => '*****',
'id' => '44',
'role_id' => '5',
'username' => 'user',
'password_token' => null,
'email' => '[email protected]',
'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
)
)
$ _SESSION, когда не найден
array()
Наши производственные среды работают как таковые, но эта проблема возникает на нашем dev-сервере, который также является одним сервером. – GatorGuy023
Можете ли вы вставить здесь функцию beforeFilter, а также краткое описание того, что вы храните в сеансе? т. е. будет ли он сконструирован Cake AuthComponent? Если доступ к открытому представлению невозможен, доступ к нему возможен только при входе в систему или он разблокируется через beforeFilter(), это происходит повсюду или только на определенных контроллерах/представлениях? –
Это происходит везде в приложении. См. Править выше для запрошенного кода. – GatorGuy023