关于CI框架 Session 的问题的 不可思议
关于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(){// 析构函数,删除 flashmemif (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;}}? 1 楼 xiaoshenge 2012-02-20 看到标题,和内容不知道 作者所说的因为 CI框架库自身对Session支持的问题,使得 服务器端Session存储竟然
* 依赖 客户端浏览器 ,无语... 个人对CI开发者无语...
是什么意思?