简体   繁体   English

将会话存储在Codeigniter中的最佳方法

[英]best way to store session in codeigniter

I want use session in my website but I can't find best way to store them, codeigniter offers files , database and so on. 我想在我的网站上使用会话 ,但是我找不到最佳的存储方式, codeigniter提供了文件数据库等。 but which is best?? 但是哪个最好?

I use file with this config: 我使用此配置文件:

$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 0;
$config['sess_save_path'] = '_s';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 0;
$config['sess_regenerate_destroy'] = FALSE;

but i get this error: 但我得到这个错误:

Unable to create file ./_s\ci_sessionecc1dccdd1118e02ee956dde8aadaf7f1116c1ac because No such file or directory

I must use database ?? 我必须使用数据库

I find the best way is to create a cache/session/ folder in your systems directory is more safer I put important things like logs and cache in system rather than application folder. 我发现最好的方法是在您的系统目录中创建一个cache / session /文件夹,这更安全。我将重要内容(例如日志和缓存)放在系统文件夹中,而不是应用程序文件夹中。

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

Config.php Config.php

$config['encryption_key'] = 'somekey';

$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = BASEPATH . 'cache/sessions/';
$config['sess_match_ip'] = TRUE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = TRUE;

I also would autoload sessions my self 我也会自动加载会话

application/config/autoload.php application / config / autoload.php

$autoload['libraries'] = array('database', 'session');

Usage Example 使用范例

On login form_validation success part 在登录form_validation成功部分

$data = array(
'is_logged' => true,
'username' => $this->input->post('username')
);

$this->session->set_userdata($data);

One you set your data then after login can get sessions $this->session->userdata('username') etc 您设置数据后登录后即可获得会话$this->session->userdata('username')

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM