龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

session数据库类

时间:2014-07-22 14:52来源: 作者: 点击:
分享到:
div session数据库类 br / 你懂得 br / 一会把数据库操作类也发出来 br / br / 结合数据库操作类:http://www.oschina.net/code/snippet_155355_4844 br / br / 配制 br / div ?php /div div /*配制*/ /div div $config=arra
session数据库类
你懂得
一会把数据库操作类也发出来

结合数据库操作类:http://www.oschina.net/code/snippet_155355_4844

配制
<?php
/*配制*/
$config=array(
/* 数据库设置 */
    'DB_TYPE'               => 'mysql',     // 数据库类型
'DB_HOST'               => 'localhost', // 服务器地址
'DB_NAME'               => 'php',          // 数据库名
'DB_USER'               => 'root',      // 用户名
'DB_PWD'                => '123',          // 密码
'DB_PREFIX'             => 'jiaodu_',    // 数据库表前缀
    'DB_CHARSET'            => 'utf8',      // 数据库编码默认采用utf8
/* SESSION设置 */
'SESSION_START' => 'user',    //session方式,文件方式:file, 数据库设置为user

);





<?php
/**
 * session类
 * @author 角度 QQ:1286522207
 *
 */
class session extends Action{
	private $session_db;
	private $session_Overdue;
	private $db_tablename;//数据库名称
	function __construct(){
		$this->session_Overdue=3600;
		$this->session_db= $this->db();
	}
	/**
	 * 打开
	 */
	public function open() {
		return true;
	}
	/**
	 * 关闭
	 */
	public function close() {
		return true;
	}
	/**
	 * 读取
	 */
	public function read($id) {
		$where['id']=$id;
		$this->session_db->M('session');
		$value=$this->session_db->find($where);
		if ($value) {
			return $value['data'];
		} else {
			return "";
		}
	}
	/**
	 * 写入
	 */
	public function write($id, $datas) {
		$where['id']=$id;
		$date['data']=$datas;
		$date['time']=time()+$this->session_Overdue;
		$date['ip']=$this->session_db->get_client_ip();
		if (empty($_SESSION['user_id'])){
			$date['user']=0;
		}else {
			$date['user']=$_SESSION['user_id'];
		}
		$this->session_db->M('session');
		$up=$this->session_db->Update($date, $where);
		if ($up){
			return true;
		}else {
			$date['id']=$id;
			$this->session_db->Insert($date);
			return true;
		}
	}
	/**
	 * 摧毁
	 */
	public function destroy($id) {
		$where['id']=$id;
		return $this->session_db->Delete($where);
	}
	/**
	 * 回收
	 */
	public function gc($max) {
		return true;
	}
	function __destruct(){
		$this->session_db->Delete("`time`<'".time()."'");
	}
}
ini_set ( 'session.save_handler',$config['SESSION_START']);
$session = new session ();
session_set_save_handler ( array ($session, 'open' ), array ($session, 'close' ), array ($session, 'read' ), array ($session, 'write' ), array ($session, 'destroy' ), array ($session, 'gc' ) );
session_start();
精彩图集

赞助商链接