| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | 
							- <?php
 
- class Online extends Think {
 
-    protected $lifeTime='1800' ,$sessionid='' ,$dao;
 
-    public function __construct(&$params='') {
 
- 		$this->lifeTime = C('EXPIRE_TIME') ?  C('EXPIRE_TIME') : 1800;
 
- 		if(cookie('onlineid')){
 
- 			$this->sessionid = cookie('onlineid');
 
- 		}else{
 
- 			$this->sessionid = substr(MD5(session_id()), 0, 32);
 
- 			cookie('onlineid',$this->sessionid,0);
 
- 		}
 
- 		$this->dao = M('Online');
 
-         //session_set_save_handler(array(&$this,'open'), array(&$this,'close'), array(&$this,'read'), array(&$this,'write'), array(&$this,'destroy'), array(&$this,'gc'));
 
- 		$this->write($this->sessionid);
 
- 		$this->gc($this->lifeTime);
 
-     }
 
-     public function open($savePath, $sessName) {
 
-        return true;
 
-     }
 
-    public function close() {
 
- 	   return $this->gc($this->lifetime);
 
-    }
 
-    public function read($sessID) {
 
- 	   $r = $this->dao->find($sessID);
 
- 		return $r ? $r['data'] : '';
 
-    }
 
-    public function write($sessID,$sessData) {
 
- 		$ip = get_client_ip();
 
- 		$username = cookie('username') ? cookie('username') : '';
 
- 		$groupid = cookie('groupid') ? intval(cookie('groupid')) : 4;
 
- 		$sessiondata = array(
 
- 							'sessionid'=>$sessID,
 
- 							'userid'=>intval(cookie('userid')),
 
- 							'username'=>$username,
 
- 							'ip'=>$ip,
 
- 							'lastvisit'=>time(),
 
- 							'groupid'=> $groupid,
 
- 							'data'=> '',
 
- 		);
 
- 		return $this->dao->add($sessiondata,'',true);
 
-    }
 
-    public function destroy($sessID) {
 
- 	   return $this->dao->delete($this->sessionid);
 
-    }
 
-    public function gc($sessMaxLifeTime) {
 
- 	   $expiretime = time() -$sessMaxLifeTime;
 
- 		$r =  $this->dao->where(" lastvisit < $expiretime")->delete();
 
- 		return $r;
 
-    }
 
- }
 
 
  |