网站开发技术

记点笔记、 学点技术 欢迎交流建站技术。本站关注lamp技术

您尚未登录。

#1 2014-11-22 10:00:18

admin
管理员

ci中如何使用session的(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

离线

页脚

Powered by FluxBB