Проблемы с сессией Cakephp - PullRequest
0 голосов
/ 14 марта 2012

Я не могу понять странное поведение сессий в контроллере CakePHP:

class UsersController extends AppController
{
    public $helpers = array('Session');
    public $components = array('Session'); 

    public function Do() {
        $this->Session->write('Foo', 'Bar');
        $_SESSION['Foo2'] = 'Bar2';

        echo $this->Session->read('Foo');
        echo $_SESSION['Foo2'];
    }
};

Первый эхо ничего не выводит, а второй - Bar2. Почему работает родной $_SESSION, но через интерфейс CakePHP он недоступен?

1 Ответ

1 голос
/ 15 марта 2012

(Этот ответ предполагает CakePHP 1.3)

Вы сказали в комментариях, что в вашем конфигурационном файле Session.save установлен на php. В том же файле вы должны установить Session.start на true. Если нет, у вас есть два варианта:

  • Фактическая установка Session.start на true в файле конфигурации или
  • Вызов $this->Session->activate() из контроллера перед использованием компонента Session.

Ссылки:

http://book.cakephp.org/1.3/en/view/1465/Session (как ни странно, Session.start и activate() документированы только для помощника сеанса, но они также применимы и к компоненту). http://book.cakephp.org/1.3/view/931/CakePHP-Core-Configuration-Variables

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...