| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 | 
							- <?php
 
- /**
 
-  *  session mysql 数据库存储类
 
-  *
 
-  * @copyright			(C) 2005-2010 PHPCMS
 
-  * @license				http://www.phpcms.cn/license/
 
-  * @lastmodify			2010-6-8
 
-  */
 
- class session_mysql {
 
- 	var $lifetime = 1800;
 
- 	var $db;
 
- 	var $table;
 
- /**
 
-  * 构造函数
 
-  * 
 
-  */
 
-     public function __construct() {
 
- 		$this->db = pc_base::load_model('session_model');
 
- 		$this->lifetime = pc_base::load_config('system','session_ttl');
 
-     	session_set_save_handler(array(&$this,'open'), array(&$this,'close'), array(&$this,'read'), array(&$this,'write'), array(&$this,'destroy'), array(&$this,'gc'));
 
-     	session_start();
 
-     }
 
- /**
 
-  * session_set_save_handler  open方法
 
-  * @param $save_path
 
-  * @param $session_name
 
-  * @return true
 
-  */
 
-     public function open($save_path, $session_name) {
 
- 		
 
- 		return true;
 
-     }
 
- /**
 
-  * session_set_save_handler  close方法
 
-  * @return bool
 
-  */
 
-     public function close() {
 
-         return $this->gc($this->lifetime);
 
-     } 
 
- /**
 
-  * 读取session_id
 
-  * session_set_save_handler  read方法
 
-  * @return string 读取session_id
 
-  */
 
-     public function read($id) {
 
- 		$r = $this->db->get_one(array('sessionid'=>$id), 'data');
 
- 		return $r ? $r['data'] : '';
 
-     } 
 
- /**
 
-  * 写入session_id 的值
 
-  * 
 
-  * @param $id session
 
-  * @param $data 值
 
-  * @return mixed query 执行结果
 
-  */
 
-     public function write($id, $data) {
 
-     	$uid = isset($_SESSION['userid']) ? $_SESSION['userid'] : 0;
 
-     	$roleid = isset($_SESSION['roleid']) ? $_SESSION['roleid'] : 0;
 
-     	$groupid = isset($_SESSION['groupid']) ? $_SESSION['groupid'] : 0;
 
- 		$m = defined('ROUTE_M') ? ROUTE_M : '';
 
- 		$c = defined('ROUTE_C') ? ROUTE_C : '';
 
- 		$a = defined('ROUTE_A') ? ROUTE_A : '';
 
- 		if(strlen($data) > 255) $data = '';
 
- 		$ip = ip();
 
- 		$sessiondata = array(
 
- 							'sessionid'=>$id,
 
- 							'userid'=>$uid,
 
- 							'ip'=>$ip,
 
- 							'lastvisit'=>SYS_TIME,
 
- 							'roleid'=>$roleid,
 
- 							'groupid'=>$groupid,
 
- 							'm'=>$m,
 
- 							'c'=>$c,
 
- 							'a'=>$a,
 
- 							'data'=>$data,
 
- 						);
 
- 		return $this->db->insert($sessiondata, 1, 1);
 
-     }
 
- /** 
 
-  * 删除指定的session_id
 
-  * 
 
-  * @param $id session
 
-  * @return bool
 
-  */
 
-     public function destroy($id) {
 
- 		return $this->db->delete(array('sessionid'=>$id));
 
-     }
 
- /**
 
-  * 删除过期的 session
 
-  * 
 
-  * @param $maxlifetime 存活期时间
 
-  * @return bool
 
-  */
 
-    public function gc($maxlifetime) {
 
- 		$expiretime = SYS_TIME - $maxlifetime;
 
- 		return $this->db->delete("`lastvisit`<$expiretime");
 
-     }
 
- }
 
- ?>
 
 
  |