【问题标题】:Kohana - Session DatabaseKohana - 会话数据库
【发布时间】:2011-02-21 11:49:19
【问题描述】:

我正在尝试将会话数据库与 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',
      ),
  );

?>

干杯, 托马斯。

【问题讨论】:

    标签: php mysql session kohana kohana-3


    【解决方案1】:

    将 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',
          ),
      );
    
    ?>
    

    问题是默认情况下会话称为“会话”。

    所以我重命名了每个适配器,它已经解决了这个问题。

    【讨论】:

    • 正确。每个会话类型必须具有不同的名称。 “名称”是 cookie 名称。多个同名cookies会互相覆盖。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多