PHP之CodeIgniter框架SESSION是怎么实现的

来源:互联网 发布:淘宝商城首页登录 编辑:程序博客网 时间:2024/06/07 07:08

CodeIgniter框架的SESSION是完全摒弃了PHP原有SESSION机制,自己用COOKIE实现的。其实现的流程大致如下:

// session id的生成$sessid = '';while (strlen($sessid) < 32){        $sessid .= mt_rand(0, mt_getrandmax());}$sessid .= 'IP地址';$session_id = md5(uniqid($sessid, TRUE)); //最后的SESSION_ID// cookie或者数据库中存储的数据$userdata = array(        'session_id'    => $session_id,        'ip_address'    => 'IP地址',        'user_agent'    => '用户浏览器信息前120个字符',        'last_activity' => '最新时间,即现在',        'user_data'             => '其他数据');// 需要时将 $userdata 写入到数据库中$cookie_data = serialize($userdata);// 分支一:配置了加密的情况$cookie_data = '对序列化后的 $cookie_data 进行一系列加密处理';$cookie_data = base64_encode($cookie_data);// 分之二:没有配置加密的情况$cookie_data = $cookie_data.md5($cookie_data.'密钥');// 最终设置cookiesetcookie('ci_session', $cookie_data, '过期时间', '作用路径', '作用域', 'cookie自带加密');

原文出自:http://phper.baike.com/article-373135.html
原创粉丝点击