PHP之CodeIgniter框架SESSION是怎么实现的
2013-03-02 20:55
357 查看
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
相关文章推荐
- CodeIgniter框架源码笔记(14)——SESSION之Mysql驱动实现
- CodeIgniter框架源码笔记(15)——SESSION之Redis驱动实现
- kphp框架中实现自定义session会话处理方法的php和msyql代码分享
- CodeIgniter框架源码笔记(13)——SESSION之文件File驱动实现
- CodeIgniter框架源码笔记(11)——SESSION类之闪出数据FlashData实现
- CodeIgniter源码阅读(6)Hook.php 扩展框架的实现原理
- 解析php框架codeigniter中如何使用框架的session
- CodeIgniter框架去掉url中的index.php
- PHP实现多服务器session共享之memcache共享
- 使用 CodeIgniter 框架快速开发 PHP 应用(四)
- php中session 入库的实现
- 在线竞拍系统的PHP实现框架(一)
- PHP 实现多服务器共享 SESSION 数据
- PHP 实现多服务器共享 SESSION 数据
- PHP怎么实现站点保存快捷方式
- 使用CodeIgniter框架快速开发PHP应用(四)
- CI(CodeIgniter)简单统计访问人数实现方法[原创]_php实例_脚本之家
- PHP 实现多服务器共享 SESSION 数据
- PHP搭建基于CodeIgniter框架的服务
- PHP简单实现HTTP和HTTPS跨域共享session解决办法