Posted in PHP onJune 21, 2013
<?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 使用MySQL管理Session的回调函数详解
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@