【php开源代码栏目提醒】:网学会员为需要php开源代码的朋友们搜集整理了FilterDbSession.class.php相关资料,希望对各位网友有所帮助!
<?php
// +----------------------------------------------------------------------
// | Think
PHP // +----------------------------------------------------------------------
// | Copyright (c) 2008 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------
// $Id$
/**
+------------------------------------------------------------------------------
* 鏁版嵁搴撴柟寮廠ession澶勭悊杩囨护鍣?
+------------------------------------------------------------------------------
* @category Think
* @package Think
* @subpackage Util
* @author liu21st <liu21st@gmail.com>
* @version $Id$
+------------------------------------------------------------------------------
*/
class FilterDbSession extends Base
{//绫诲畾涔夊紑濮?
/**
+----------------------------------------------------------
* Session鏈夋晥鏃堕棿
+----------------------------------------------------------
* @var array
* @access protected
+----------------------------------------------------------
*/
protected $lifeTime='';
/**
+----------------------------------------------------------
* session淇濆瓨鐨勬暟鎹簱鍚?
+----------------------------------------------------------
* @var string
* @access protected
+----------------------------------------------------------
*/
protected $sessionTable='';
/**
+----------------------------------------------------------
* 鏁版嵁搴撳彞鏌?
+----------------------------------------------------------
* @var array
* @access protected
+----------------------------------------------------------
*/
protected $dbHandle;
/**
+----------------------------------------------------------
* 鎵撳紑Session
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @param string $savePath
* @param mixed $sessName
+----------------------------------------------------------
*/
public function open($savePath, $sessName) {
// get session-lifetime
$this->lifeTime = C('SESSION_EXPIRE');
$this->sessionTable = C('SESSION_TABLE');
$dbHandle = mysql_connect(C('DB_HOST'),C('DB_USER'),C('DB_PWD'));
$dbSel = mysql_select_db(C('DB_NAME'),$dbHandle);
// return success
if(!$dbHandle || !$dbSel)
return false;
$this->dbHandle = $dbHandle;
return true;
}
/**
+----------------------------------------------------------
* 鍏抽棴Session
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
*/
public function close() {
$this->gc(ini_get('session.gc_maxlifetime'));
// close database-connection
return mysql_close($this->dbHandle);
}
/**
+----------------------------------------------------------
* 璇诲彇Session
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @param string $sessID
+----------------------------------------------------------
*/
public function read($sessID) {
// fetch session-data
$res = mysql_query("SELECT session_data AS d FROM ".$this->sessionTable." WHERE session_id = '$sessID' AND session_expires >".time(),$this->dbHandle);
// return data or an empty string at failure
if($res) {
$row = mysql_fetch_assoc($res);
$data = $row['d'];
if( function_exists('gzcompress')) {
//鍚敤鏁版嵁鍘嬬缉
//$data = gzuncompress($data);
}
return $data;
}
return "";
}
/**
+----------------------------------------------------------
* 鍐欏叆Session
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @param string $sessID
* @param String $sessData
+----------------------------------------------------------
*/
public function write($sessID,$sessData) {
// new session-expire-time
$newExp = time() + $this->lifeTime;
if( function_exists('gzcompress'))