页次: 1
首先要明白cookie的工作原理。 可以查看 cookie 的工作原理
在ci中session 是基于cookie的。 通常php程序都是这样的
第一个问题是ci如何开启session的, session的开启,和php中有点小不一样。
在ci中session是一个类。 通常是这个session需要加密,用以保证安全。
所以再 ci中要先填写的秘钥, 可以简单的理解为就是一个随机的字符串。
写在配置文件就可以 application/config.php 中有个
/* |-------------------------------------------------------------------------- | Encryption Key |-------------------------------------------------------------------------- | | If you use the Encryption class or the Session class you | MUST set an encryption key. See the user guide for info. | */ $config['encryption_key'] = '1215e51ef56';
"1215e51ef56" 这个默认是空的,随便填写一个就可以了。
最后加载以下就可以, 可以在自动加载配置文件中,也可以在手动在控制器中加载
$this->load->library("session");
这里就可以使用的了。
可以看看什么都不操作,将会获得哪些内容。
class Welcome extends CI_Controller { public function index() { $this->load->library("session");; var_dump($this->session->all_userdata()); } }
输出的结果是
array (size=5) 'session_id' => string '1a9f8910744d288f006c870433423472a7b' (length=32) 'ip_address' => string '127.0.0.1' (length=9) 'user_agent' => string 'Mozilla/5.0 (Windows NT 6.1; WOW64) *****' (length=109) 'last_activity' => int 1410001135 'user_data' => string '' (length=0)
大概和这个差不多, 默认有五项内容
session_id, ip_addres, user_agent, last_activity, user_data.
这里 last_activity 意思是, 最后访问的时间。
如果产看 cookie 的值的时候 ,会发现 有个很长的值
Cookie: ci_session=a%3A5%3A%7Bs%3A10%3A%22session_id%22%3Bs #这里很长,我就删除了。
这里就是加密过的东西。 所以session是基于cookie 的。
ipbbs.net
离线
页次: 1