zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

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

mysqlPHP 使用 详解 管理 函数 session 回调
2023-06-13 09:15:02 时间
复制代码代码如下:

<?php
 classMySessionextendsDBSQL{

  /**
  *__construct()
  */
  publicfunction__construct(){
   parent::__construct();

  }

  /**
  *open()
  *
  *@param<String>$sSavePath
  *@param<String>$sSessionNames
  *
  *@return<Boolean>true
  */
  publicfunctionopen($sSavePath,$sSessionName){
   returntrue;
  }

  /**
  *close()
  */
  publicfunctionclose(){
   returntrue;
  }

  /**
  *read()
  *
  *@param<String>$sSessionId
  *@return<String>Sessiondataornullonerror...
  */
  publicfunctionread($sSessionId){
   $sSessionId=addslashes(trim($sSessionId));
   $sSql="SELECT*FROMtb_sessionWHEREF_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>trueorfalse
  */
  publicfunctionwrite($sSessionId,$sSessionData){
   $arrSession=array();
   $arrSession["F_SessionId"]=addslashes(trim($sSessionId));
   $arrSession["F_SessionData"]=addslashes($sSessionData);
   $arrSession["F_SessionCreated"]=date("Y-m-dH:i:s");
   $arrSession["F_SessionUpdated"]=date("Y-m-dH:i:s",time()+1440);

   //新session及更新的session
   if(false!=($result=$this->insertData("tb_session",$arrSession))){
    returntrue;
   }else{
    $arrUpdateSession=array();
    $arrUpdateSession["F_SessionData"]=addslashes($sSessionData);
    $arrUpdateSession["F_SessionUpdated"]=date("Y-m-dH:i:s",time()+1440);
    if(false!=($result=$this->updateData("tb_session",""".addslashes($sSessionId).""","F_SessionId",$arrUpdateSession))){
     returntrue;
    }else{
     returnfalse;
    }
   }
  }

  /**
  *destroy()
  *
  *@param<String>$sSessionId
  *@return<Boolean>true
  */
  publicfunctiondestroy($sSessionId){
   $sSessionId=addslashes(trim($sSessionId));
   $this->delData($sSessionId,"F_SessionId","tb_session");
   returntrue;
  }

  /**
  *gc
  *
  *@param<int>$nMaxLifeTimeseconds
  *
  *@return<Boolean>true
  */
  publicfunctiongc($nMaxLifeTime){
   $dtExpiredTime=date("Y-m-dH:i:s",time()-$nMaxLifeTime);

   $sSql="DELETEFROMtb_sessionWHEREF_SessionUpdated<{$dtExpiredTime}";
   //echo$sSql;
   $this->delete($sSql);

   returntrue;
  }
  /**
  *__desctruct()
  *
  */
  function__destruct(){
   //ensuresessiondataiswrittenoutbeforeclassesaredestroyed
     //(seehttp://bugs.php.net/bug.php?id=33772fordetails)
        @session_write_close();
    }//__destruct
 }
?>