Я создаю очень базовую систему auth для определенных страниц, для которых требуется пароль для просмотра. Я нашел несколько других вопросов, которые похожи, но единственные, у которых есть четкие решения, включают настройки конфигурации, которые, похоже, не разрешают мою проблему. По какой-то причине $this->Session->write(...)
всегда возвращает false.
Вот моя настройка:
Configure::write('Session', array( 'defaults' => 'php' ));
Вот где я пытаюсь написать сеанс в действии контроллера:
private function _handle_auth_attempt( $object ) { $submitted_pass = $this->request->data['Object']['password']; $correct_pass = $object['Object']['password']; $auth_cookie_name = $this->Object->auth_cookie_name($object); debug($auth_cookie_name); //'Object1.pass' debug($submitted_pass); //'foobar' if ( md5($submitted_pass) == md5($correct_pass) ) { $write1 = $this->Session->write( $auth_cookie_name, md5($submitted_pass) ); $write2 = CakeSession::write( $auth_cookie_name, md5($submitted_pass) ); debug($write1); //FALSE debug($write2); //FALSE return TRUE; } $this->Session->setFlash('The password you entered is incorrect.'); $this->redirect( $this->referer() ); }
Обновить
Внутри _handle_auth_attempt()
я добавил:
$_SESSION['foo'] = 'bar'; $this->Session-read('foo'); //'bar'
… и они отлично работают. Поэтому я уверен, что это не проблема с разрешениями.