Kohana - база данных сессий - PullRequest
1 голос
/ 21 февраля 2011

Я пытаюсь использовать базу данных сеанса с Kohana 3.

Я настроил базу данных mysql, как описано здесь: http://kerkness.ca/wiki/doku.php?id=sessions_and_cookies

Я устанавливаю переменные сеанса следующим образом:

Session::instance('database')->set('uid', $user_id);

Однако, когда я собираюсь позже извлечь данные на другой странице или обновить их, возвращается значение NULL.

Session::instance('database')->get('uid', NULL);

Но если я помещу их рядом друг с другом, все будет работать нормально... т.е.

Session::instance('database')->set('uid', $user_id);
Session::instance('database')->get('uid', NULL);

Есть идеи, почему это происходит?

У меня также есть файл session.php в моей папке конфигурации, который выглядит следующим образом:

<?php

    return array(
      'cookie' => array(
          'name' => 'cookie',
          'encrypted' => TRUE,
          'lifetime' => 43200,
      ),
      'native' => array(
          'name' => 'session',
          'encrypted' => TRUE,
          'lifetime' => 43200,
      ),
      'database' => array(
          'group' => 'default',
          'table' => 'sessions',
      ),
  );

?>

Ура, Томас.

1 Ответ

1 голос
/ 21 февраля 2011

Обновите файл session.php, чтобы он выглядел так:

<?php

    return array(
      'cookie' => array(
          'name' => 'session_cookie',
          'encrypted' => TRUE,
          'lifetime' => 43200,
      ),
      'native' => array(
          'name' => 'session_native',
          'encrypted' => TRUE,
          'lifetime' => 43200,
      ),
      'database' => array(
          'name' => 'session_database',
          'group' => 'default',
          'table' => 'sessions',
      ),
  );

?>

Проблема была в том, что по умолчанию сессии называются "сессия".

Итак, я переименовал каждый адаптер, и это устранило проблему.

...