PHP 使用MySQL管理Session的回调函数详解
2015-01-24信息快讯网
本篇文章文章是对PHP中使用MySQL管理Session的回调函数进行了详细的分析介绍,需要的朋友参考下
<?php
class MySession extends DBSQL {
/**
* __construct()
*/
public function __construct() {
parent::__construct ();
}
/**
* open()
*
* @param <String> $sSavePath
* @param <String>$sSessionNames
*
* @return <Boolean> true
*/
public function open($sSavePath, $sSessionName) {
return true;
}
/**
* close()
*/
public function close() {
return true;
}
/**
* read()
*
* @param <String> $sSessionId
* @return <String> Session data or null on error...
*/
public function read($sSessionId) {
$sSessionId = addslashes(trim($sSessionId));
$sSql = "SELECT * FROM tb_session WHERE F_SessionId = '{$sSessionId}'";
//echo $sSql;
if(false != ($result = $this->select($sSql))) {
//var_dump($result[0]['F_SessionData']);
return $result[0]['F_SessionData'];
} else {
return '';
}
}
/**
* write()
*
* @param <String> $SessionId
* @param <String> $sSessionData
*
* @return <Boolean> true or false
*/
public function write($sSessionId, $sSessionData) {
$arrSession = array();
$arrSession['F_SessionId'] = addslashes(trim($sSessionId));
$arrSession['F_SessionData'] = addslashes($sSessionData);
$arrSession['F_SessionCreated'] = date("Y-m-d H:i:s");
$arrSession['F_SessionUpdated'] = date("Y-m-d H:i:s", time() + 1440);
// 新session及更新的session
if (false != ($result = $this->insertData('tb_session', $arrSession))) {
return true;
} else {
$arrUpdateSession = array();
$arrUpdateSession['F_SessionData'] = addslashes($sSessionData);
$arrUpdateSession['F_SessionUpdated'] = date("Y-m-d H:i:s", time() + 1440);
if (false != ($result = $this->updateData('tb_session', "'".addslashes($sSessionId)."'", 'F_SessionId', $arrUpdateSession))) {
return true;
} else {
return false;
}
}
}
/**
* destroy()
*
* @param <String> $sSessionId
* @return <Boolean> true
*/
public function destroy($sSessionId) {
$sSessionId = addslashes(trim($sSessionId));
$this->delData($sSessionId, 'F_SessionId', 'tb_session');
return true;
}
/**
* gc
*
* @param <int> $nMaxLifeTime seconds
*
* @return <Boolean> true
*/
public function gc($nMaxLifeTime) {
$dtExpiredTime = date("Y-m-d H:i:s", time() - $nMaxLifeTime);
$sSql = "DELETE FROM tb_session WHERE F_SessionUpdated < {$dtExpiredTime}";
//echo $sSql;
$this->delete($sSql);
return true;
}
/**
* __desctruct()
*
*/
function __destruct() {
// ensure session data is written out before classes are destroyed
// (see http://bugs.php.net/bug.php?id=33772 for details)
@session_write_close();
} // __destruct
}
?>
php $_SERVER windows系统与linux系统下的区别说明
php根据isbn书号查询amazon网站上的图书信息的示例
php中的filesystem文件系统函数介绍及使用示例
php中的路径问题与set_include_path使用介绍
thinkphp3查询mssql数据库乱码解决方法分享
php stripslashes和addslashes的区别
分享下页面关键字抓取components.arrow.com站点代码
分享下页面关键字抓取www.icbase.com站点代码(带asp.net参数的)
PHP $_FILES中error返回值详解
两级联动select刷新后其值保持不变的实现方法
使用openssl实现rsa非对称加密算法示例
php使用base64加密解密图片示例分享
php环境下利用session防止页面重复刷新的具体实现
PHP修改session_id示例代码
linux实现php定时执行cron任务详解
PHP数据库链接类(PDO+Access)实例分享
深入理解PHP中的Session和Cookie
解析PHP中一些可能会被忽略的问题
浅析PHP中Collection 类的设计
PHP操作MongoDB GridFS 存储文件的详解
解析PHP中常见的mongodb查询操作
PHP 解决session死锁的方法
php连接Access数据库错误及解决方法
PHP连接Access数据库的方法小结
完美解决令人抓狂的zend studio 7代码提示(content Assist)速度慢的问题
php中0,null,empty,空,false,字符串关系的详细介绍
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
解析htaccess伪静态的规则
php empty()与isset()区别的详细介绍
Session服务器配置指南与使用经验的深入解析
解析php中session的实现原理以及大网站应用应注意的问题