使用codeigniter在数据库中保存会话

时间:2011-10-16 17:54:32

标签: session codeigniter

我有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);

它没有奏效。所以欢迎任何建议。

2 个答案:

答案 0 :(得分:0)

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

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

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

请在以下网址中引用“会话数据到数据库”部分:

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

答案 1 :(得分:0)

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

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

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

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