2013-12-18 3 views
0

Я использую Kohana 3.3, и в моем bootstrap.php я устанавливаю Session::$default = 'database';Кохана всегда использует собственные сеансы для чего-то даже при использовании сеансов базы данных?

Сессии действительно собираются в базу данных, и, кажется, работает нормально. Тем не менее, браузер все еще получает «родной» cookie сеанса. Он имеет cookie «nsession» и «session».

Does Kohana 3.3 всегда использует родной сеанс для чего-то, даже при разговоре по умолчанию с сеансами базы данных?

Также, как каждая из этих сессий связана с тем, как php обрабатывает сеансы на более низком уровне, например, файлы сеанса, входящие в/var/lib/php5?

Мои Kohana сессия конфигурации:

return array(
    'native' => array(
     'name' => 'nsession', 
     'lifetime' => 604800, 
    ), 
    'cookie' => array(
     'name' => 'csession', 
     'encrypted' => TRUE, 
     'lifetime' => 604800, 
    ), 
    'database' => array(
     'name' => 'session', 
     'encrypted' => FALSE, 
     'lifetime' => 604800, 
     'group' => 'default', 
     'table' => 'sessions2', 
     'columns' => array(
      'session_id' => 'session_id', 
      'last_active' => 'last_active', 
      'contents' => 'contents' 
     ), 
     'gc' => 500, 
    ), 
); 
+0

Существует настройка php.ini, которая всегда запускает собственный сеанс, вы это проверили? – Darsstar

ответ

0

Нет Kohana 3.3 не должен сделать «родной» сеансовый куки, если установить по умолчанию «база данных». Однако он сохраняет cookie сеанса с идентификатором сеанса. Если другие файлы cookie все еще создаются, возможно, что-то происходит неправильно.

Две вещи, которые приходят на ум, это session.auto_start, это правда в вашем php.ini или где-то вы все еще используете «родной» драйвер сеанса.

Как 3 работы внутри практически одинаковы. Все они используют php SessionHandlerinterface. Единственное различие между тремя драйверами заключается в том, как данные сеанса сохраняются, извлекаются и удаляются.

Native:

PHP сохраняет сеанс в папку на диске. Место указывается в файле php.ini.

Cookie:

Данные сеанса не будет сохранено в печенье. Таким образом, эта реализация фактически использует два файла cookie для сохранения данных сеанса. (1: идентификатор сессии, 2: данные сессии)

База данных:

Данные сеанса не будет сохранено в базе данных.

Надеюсь, это вам поможет.

 Смежные вопросы

  • Нет связанных вопросов^_^