原生php使用session,CodeIgniter下使用PHP的原生Session

CodeIgniter框架在3.0之前的版本session是存储到cookie中的,在实际的Web应用中有许多不便。github上有很多让CI框架中使用PHP原生session的库。我选择了CodeIgniter-Native-Session

安装方法很简单,照着作者提供的安装方法进行安装即可。下面提供一个验证的方法。

在192.168.0.1上起一个memcache用于存储php的session,启动命令如下:

/usr/local/webserver/memcached/bin/memcached -d -c20480 -u root -m 5 -l 192.168.0.1 -p10000

php.ini中将session存储到memcache中。php.ini中相关部分的设置如下:

[Session]

; Handler used to store/retrieve data.

; http://php.net/session.save-handler

;session.save_handler = files

session.save_handler = memcache

session.save_path = tcp://192.168.0.1:10000

设置好之后,重启php fast cgi。

编写测试程序test.php:

class Test extends CI_Controller {

public function index()

{

//$this->load->view('welcome_message');

$this->load->library('session');

print_r($this->session->all_userdata());

}

}

/* End of file test.php */

/* Location: ./application/controllers/test.php */

用浏览器访问test这个controller,通过firebug可以看到cookie中PHPSESSID的值是c0r5sr59sng0535613ui9h7hb5。

通过命令行验证相关session是否存到了memcache中,

telnet 192.168.0.1:10000

以c0r5sr59sng0535613ui9h7hb5为key获取相关信息。

get c0r5sr59sng0535613ui9h7hb5

可以看到有类似下面的结果输出,则session已经存到了memcache中。注意,dev是设置在config/session.php里面的sess_namespace的值。

VALUE c0r5sr59sng0535613ui9h7hb5 0 97

dev|a:2:{s:10:"session_id";s:32:"d6be0f31ed57feadda66293546ac03bd";s:9:"expire_at";i:1378383924;}

END

除非注明,本博客文章均为原创,转载请以链接形式标明本文地址

本文地址: http://blog.cnwyhx.com/?p=221

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值