【问题标题】:Save session in database using codeigniter使用 codeigniter 在数据库中保存会话
【发布时间】:2011-10-16 17:54:32
【问题描述】:

我有一个CodeIgniter制作的应用程序。

我已经做了,以便可以安装。当您访问该站点时,我会检查 database.php 是否可用。如果它不存在,那么我创建 database.php 以及我的数据库和表。

它工作正常,但现在我有一个问题。

我想将会话保存在数据库中。 (http://codeigniter.com/user_guide/libraries/sessions.html)

为此,我必须更改我的 config.php。

$ config ['sess_cookie_name'] = 'ci_session';
$ config ['sess_expiration'] = 7200;
$ config ['sess_expire_on_close'] = FALSE;
$ config ['sess_encrypt_cookie'] = FALSE;
$ config ['sess_use_database'] = TRUE;
$ config ['sess_table_name'] = 'Session';
$ config ['sess_match_ip'] = FALSE;
$ config ['sess_match_useragent'] = TRUE;
$ config ['sess_time_to_update'] = 300;

我遇到的问题是,由于我从一开始就没有 database.php,所以当我想安装应用程序时收到一条错误消息。我得到的错误信息是缺少 database.php。

我该如何解决这个问题?我试过用这个: $ this-> config-> set_item ('sess_use_database', TRUE);

它没有工作。所以欢迎任何建议。

【问题讨论】:

  • 嗯,你从一开始就没有“database.php”吗?您希望 codeigniter 如何“知道”哪个数据库用于存储您的会话信息?还是我误解了什么?

标签: session codeigniter


【解决方案1】:

您必须连接您的数据库(Mysql 或 MSSQL ...),请修改 application/config/databases.php 并按照用户指南进行操作

http://codeigniter.com/user_guide/database/configuration.html

在通过数据库使用会话之前,请将会话加密密钥添加到您的应用程序/config/config.php,打开文件并设置:$config['encryption_key'] = "YOUR KEY";

请参考以下 URL 以阅读“数据库会话数据”部分:

http://codeigniter.com/user_guide/libraries/sessions.html

【讨论】:

    【解决方案2】:

    如果您不介意将会话变量存储在 cookie 中

    只需将$config ['sess_use_database'] = TRUE; 设置为 FALSE。

    由于您似乎没有使用数据库,因此没有缺点。

    如果您决定实现一个数据库,然后将您的查询基于用户数据,则可能会有一个。这会导致您的应用程序出现巨大的安全漏洞。

    【讨论】:

      猜你喜欢
      • 2016-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多