Home > php教程 > php手册 > PHP 使用MySQL管理Session的回调函数详解

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

WBOY
Release: 2016-06-13 11:46:05
Original
917 people have browsed it

复制代码 代码如下:


 class MySession extends DBSQL {

  /**
   * __construct()
   */
  public function __construct() {
   parent::__construct ();

  }

  /**
   * open()
   *
   * @param $sSavePath
   * @param $sSessionNames
   *
   * @return true
   */
  public function open($sSavePath, $sSessionName) {
   return true;
  }

  /**
   * close()
   */
  public function close() {
   return true;
  }

  /**
   * read()
   *
   * @param $sSessionId
   * @return 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 $SessionId
   * @param $sSessionData
   *
   * @return 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 $sSessionId
   * @return true
   */
  public function destroy($sSessionId) {
   $sSessionId = addslashes(trim($sSessionId));
   $this->delData($sSessionId, 'F_SessionId', 'tb_session');
   return true;
  }

  /**
   * gc
   *
   * @param $nMaxLifeTime seconds
   *
   * @return true
   */
  public function gc($nMaxLifeTime) {
   $dtExpiredTime = date("Y-m-d H:i:s", time() - $nMaxLifeTime);

   $sSql = "DELETE FROM tb_session WHERE F_SessionUpdated    //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
 }
?>

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template