PHP 使用MySQL管理Session的回调函数详解

2025-05-29 0 55

复制代码 代码如下:


<?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
}
?>

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 PHP 使用MySQL管理Session的回调函数详解 https://www.kuaiidc.com/106672.html

相关文章

发表评论
暂无评论