- 浏览: 1742791 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (641)
- vb2005xu自己动手系列 (174)
- vb2005xu开发文章转摘 (47)
- vb2005xu发发牢骚 (99)
- vb2005xu新技术灌水 (12)
- vb2005xu网络资源集锦 (21)
- vb2005xu软件学习 (60)
- 英语学习 (3)
- JavaScript 学习 (54)
- JAVA OOP 巩固 之 CustomDatabase 的开发 (5)
- 2013年9月之前所在公司 记事 (7)
- FleaPHP/QEEPHP 资料 (87)
- JAVA MAIL 学习篇 (4)
- Python turbogears (5)
- Rails 个人开发四部曲 (3)
- 名人传 (8)
- iwp framework (5)
- 高考零分作文 (5)
- startos (8)
- lua (0)
- 职场 (1)
最新评论
-
hellotieye:
自己 评论 自己 挺嗨呀
Mysql sql查询时 if 的用法 -
igevin:
转载请标明出处,转自Gevin的博客http://blog.i ...
RESTful API 编写指南 -
Theobob:
...
实现简单的ACL -
vb2005xu:
比如 对于 curl 调用就不再需要 加各种if 判断了,
$ ...
搞一个简单的数据打印工具AsDebug の Laravel -
vb2005xu:
http://geekplux.com/wiki/
YII2 模块内自定义错误页
关于CI框架 Session 的问题的 不可思议
老实说 在网上验证了很久,查了很久,以及同相关朋友互相沟通,都很费解 其作者究竟是如何思考的...
为什么 在session支持上竟走上了这么一个曲线...
不理解... 没办法,只能改写吧.... 让其回到正轨...
留言如此,备忘后记....
CI 并不是乐土,框架选型 ... 慎重....
贴出自己的 session类吧... 无奈的选择啊...
<?php /** * 因为 CI框架库自身对Session支持的问题,使得 服务器端Session存储竟然 * 依赖 客户端浏览器 ,无语... 个人对CI开发者无语... * * 不知道其具体是怎么想的.. * * @author 色色 vb2005xu.iteye.com * */ class My_Session { private static $key_userdata = '#userdata+-'; private static $key_flashmem = '#flashmem+-'; function __construct(){ if (!headers_sent()){ session_start();} } function __destruct(){ // 析构函数,删除 flashmem if (isset($_SESSION[self::$key_flashmem])){ unset($_SESSION[self::$key_flashmem]); } } function userdata($item){ $D = isset($_SESSION[self::$key_userdata]) ? $_SESSION[self::$key_userdata] : FALSE; return $D && is_array($D) && isset($D[$item]) ? $D[$item] : FALSE; } private function init_userdata(){ if (isset($_SESSION[self::$key_userdata]) && is_array($_SESSION[self::$key_userdata])) return true; $_SESSION[self::$key_userdata] = array(); } function set_userdata($newdata = array(), $newval = ''){ $this->init_userdata(); if (is_string($newdata)) { $newdata = array($newdata => $newval); } if (count($newdata) > 0) { foreach ($newdata as $key => $val) { $_SESSION[self::$key_userdata][$key] = $val; } } } function unset_userdata($newdata = array()) { $this->init_userdata(); if (is_string($newdata)) { $newdata = array($newdata => ''); } if (count($newdata) > 0) { foreach ($newdata as $key => $val) { unset($_SESSION[self::$key_userdata][$key]); } } } function all_userdata() { return isset($_SESSION[self::$key_userdata]) ? $_SESSION[self::$key_userdata]:FALSE; } function sess_destroy(){ // THROW NEW EXCEPTION('D'); session_destroy(); } private function init_flashdata(){ if (isset($_SESSION[self::$key_flashmem]) && is_array($_SESSION[self::$key_flashmem])) return true; $_SESSION[self::$key_flashmem] = array(); } function set_flashdata($newdata = array(), $newval = '') { $this->init_flashdata(); if (is_string($newdata)) { $newdata = array($newdata => $newval); } if (count($newdata) > 0) { foreach ($newdata as $key => $val) { $_SESSION[self::$key_flashmem][$key] = $val; } } } function flashdata($item) { $D = isset($_SESSION[self::$key_flashmem]) ? $_SESSION[self::$key_flashmem] : FALSE; return $D && is_array($D) && isset($D[$item]) ? $D[$item] : FALSE; } }
评论
3 楼
virel
2014-08-15
呵呵一笑
2 楼
Paull
2013-07-11
虽然走了个曲线,但是也有可取之处,可以很大程度上防止跨站攻击。
色色担心的是被解密或cookie的4K限制么?还是因为禁用cookie=禁用session?
色色担心的是被解密或cookie的4K限制么?还是因为禁用cookie=禁用session?
1 楼
xiaoshenge
2012-02-20
看到标题,和内容不知道 作者所说的
因为 CI框架库自身对Session支持的问题,使得 服务器端Session存储竟然
* 依赖 客户端浏览器 ,无语... 个人对CI开发者无语...
是什么意思?
因为 CI框架库自身对Session支持的问题,使得 服务器端Session存储竟然
* 依赖 客户端浏览器 ,无语... 个人对CI开发者无语...
是什么意思?
发表评论
-
前端截取url成图片
2017-11-09 18:16 1486有些小需求需要将 url 转成图片, 直接使用 ... -
excel-to-csv-inbrowser
2016-08-15 19:20 2829# excel-to-csv-inbrowser exce ... -
ws-http 最简单轻量的PHP CURL工具库
2016-07-29 20:44 2549欢迎大家拍砖 https://github.com/to ... -
常用的 js 代码梳理
2016-06-16 12:00 1851/** * 格式化时间函数 * @param {form ... -
Facade 包装类 -- 解决视图里面长长的命名空间调用问题
2016-04-20 10:48 1652有时候模版里面定义 ... -
搞一个简单的数据打印工具AsDebug の Laravel
2016-01-20 19:47 2915很多时候我们都要纠结于代码开发过程中的数据 dump 工作 ... -
ken\trade
2015-12-18 20:45 1499<?php namespace ken\tra ... -
我承认我手贱: 升级 xcode
2015-11-14 21:11 1817升级 xcode 之后, 在终端运行 git clone 出现 ... -
YII2 模块内自定义错误页
2015-11-07 12:17 5425当前YII框架中把错误异常配置都放置在 web.php 中, ... -
PHP单例模式面试注意事项
2015-10-20 09:57 1898最近面了不少PHP从业者,有实习生也有5/6年以上的开发者 ... -
NGINX 配置 SSL 证书 搭建 HTTPS 网站
2015-10-19 19:19 2859下面是详细的配置过程: 1、在服务器上使用 Open ... -
关于php cron任务管理的实现假想
2015-10-17 21:25 1824之前每开发一个计划任务功能均需要在线上操作crontab来新 ... -
fineuploader 跨子域上传文件 cookie丢失问题的解决
2015-10-14 13:30 4740目前的项目中,使用到了fineuploader 这个纯htm ... -
CentOS 6安全加固及性能优化
2015-07-27 14:54 4221CentOS 6安全加固及性能优化 我们可以通过调整 ... -
常见票据辨别真伪的方法
2015-04-28 09:07 16811、真伪鉴别图示和步 ... -
梳理面试中遇到的HTTP协议相关的问题和知识
2015-04-16 13:45 3879本文会是一个比较长的,持续更新的过程 当你在浏览器地 ... -
面试中遇到的期权问题
2015-04-13 14:33 2680最近在面试一直遇到 ... -
遭遇windows上PHP 不能打开GBK编码文件名的问题
2015-03-09 11:21 3082我在 目录下建了一个文件名为 謀定三國-i8ujlw.js ... -
遭遇jsonp同域下变作post请求的坑
2015-01-28 21:39 4700今天迁移一个站点时遇到一个坑爹问题,同一个jsonp接口在 ... -
nginx 400 错误请求分析
2015-01-27 15:01 3244在服务器上传文件过程中 nginx经常会出现 400 的错误 ...
相关推荐
9.CI框架学习-实例操作发表文章之CI框架文件上传类与缩略图类使用 10.CI框架学习-实例操作查看文章CI分页类使用与自定义与AR类连贯操作 11.CI框架学习-实例操作CI自带验证码使用与如何扩展自定义类库(验证码) 12.C...
CI的Session并不是原生的session,正是我前面所有的cookie based session,另外,CI可以根据用户选择配置是否将session存入数据库中,本人很喜欢这个功能,还有就是“闪出数据”的功能,既闪出数据只是对下次服务器...
本文实例总结了CI框架常用经典操作类。分享给大家供大家参考,具体如下: 1. 超级对象中的URI CI_URI类的解析url的相关信息 直接使用$this->uri可以使用它的相关属性 system/core/URI.php文件中 部分常用属性: (1) ...
很多程序员在CI中使用session的时候,开启自动加载session之后网站就报错了,这篇文章主要介绍了CI框架自动加载session出现报错的解决办法,需要的朋友可以参考下
C语言头文件 SESSIONC语言头文件 SESSIONC语言头文件 SESSIONC语言头文件 SESSIONC语言头文件 SESSIONC语言头文件 SESSIONC语言头文件 SESSIONC语言头文件 SESSIONC语言头文件 SESSIONC语言头文件 SESSIONC语言...
代码写的不是很简洁,大家可以精简代码。这些代码只是简单实现了“注册、登录、验证、Session”的使用,仅供 CI 新手学习使用。
正对java Web项目,同浏览器同时打开两个登录窗口(不同Tag),用不同用户登录,为避免使用同一个Session,需要使用这段代码。否则先登录的用户的Session会变成后登录用户的Session.相关系统使用权限也会变。
解决springboot实现跨域session共享问题,防止sql注入。可以更有效的解决token问题,欢迎下载,有问题可以再评论下方留言,及时解答!!加群:687942640
因为小程序原生不支持Cookie,因此也不支持Session。 网上找到的的一些方法有缺陷,而且很多累赘,估计没有实际测试过,在此直接给出实测可用的代码。 大概思路就是借助小程序本地储存+网络请求的header可读可写来...
iframe 跨域访问session问题解决方法
codeigniter兼容Session
dwz框架实现拦截器 session超时跳转登陆页面 DWZ框架 struts2拦截器 session超时
之前我们分析了CI框架的session类session.php,本文我们继续分析CI框架的安全类security.php文件,方便我们更详细的了解CI框架,从而更熟练的应用CI框架
关于session.doc关于sessio关于session.docn.doc
session驱动类 session存入数据库 数据库存储session 用于session存入数据库
现在Ajax在Web项目中应用广泛,几乎可以说无处不在,这就带来另外一个问题:当Ajax请求遇到Session超时,应该怎么办? 显而易见,传统的页面跳转在此已经不适用,因为Ajax请求是XMLHTTPRequest对象发起的而不
主要介绍了CI框架(CodeIgniter)操作redis的方法,结合实例形式详细分析了CodeIgniter框架针对redis数据库操作的相关配置与使用技巧,需要的朋友可以参考下
2是codeigniter这个框架的一个方法:下面就详细讲解如何使用这个有点点复杂的方法:首先,在\ci\application\config下面的config.php文件中找到:$config[‘encryption_key’] = ”;这个里面随便填什么值都可以,...