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


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 相关文章推荐
在JavaScript中调用php程序
Mar 09 PHP
php 文章调用类代码
Aug 11 PHP
用PHP+MySQL搭建聊天室功能实例代码
Aug 20 PHP
php实现查询百度google收录情况(示例代码)
Aug 02 PHP
提高PHP性能的编码技巧以及性能优化详细解析
Aug 24 PHP
自定义session存储机制避免会话保持问题
Oct 08 PHP
PHP实现从远程下载文件的方法
Mar 12 PHP
Laravel 5框架学习之Blade 简介
Apr 08 PHP
利用php抓取蜘蛛爬虫痕迹的示例代码
Sep 30 PHP
Zend Framework过滤器Zend_Filter用法详解
Dec 09 PHP
基于PHP常用文件函数和目录函数整理
Aug 17 PHP
微信公众平台开发教程⑥ 微信开发集成类的使用图文详解
Apr 10 PHP
解析PHP中一些可能会被忽略的问题
Jun 21 #PHP
关于PHP堆栈与列队的学习
Jun 21 #PHP
浅析PHP 按位与或 (^ 、&amp;)
Jun 21 #PHP
浅析PHP中Collection 类的设计
Jun 21 #PHP
解析PHP无限级分类方法及代码
Jun 21 #PHP
PHP 循环删除无限分类子节点的实现代码
Jun 21 #PHP
解析左右值无限分类的实现算法
Jun 20 #PHP
You might like
大师制作的中短波矿石收音机
2020/04/02 无线电
用 PHP5 轻松解析 XML
2006/12/04 PHP
PHP5.2下chunk_split()函数整数溢出漏洞 分析
2007/06/06 PHP
php中0,null,empty,空,false,字符串关系的详细介绍
2013/06/20 PHP
location.search在客户端获取Url参数的方法
2010/06/08 Javascript
jquery 笔记 事件
2011/11/02 Javascript
js+CSS实现模拟华丽的select控件下拉菜单效果
2015/09/01 Javascript
jQuery插件ajaxFileUpload使用详解
2017/01/10 Javascript
原生js实现打字动画游戏
2017/02/04 Javascript
详解webpack提取第三方库的正确姿势
2017/12/22 Javascript
vue中设置height:100%无效的问题及解决方法
2018/07/27 Javascript
使用VScode 插件debugger for chrome 调试react源码的方法
2019/09/13 Javascript
Python完全新手教程
2007/02/08 Python
Python实现的检测web服务器健康状况的小程序
2014/09/17 Python
Python中for循环控制语句用法实例
2015/06/02 Python
python基础教程之分支、循环简单用法
2016/06/16 Python
Python实现将不规范的英文名字首字母大写
2016/11/15 Python
对python中的try、except、finally 执行顺序详解
2019/02/18 Python
flask应用部署到服务器的方法
2019/07/12 Python
Python测试模块doctest使用解析
2019/08/10 Python
Kears 使用:通过回调函数保存最佳准确率下的模型操作
2020/06/17 Python
什么是TCP/IP
2014/07/27 面试题
简单说下OSPF的操作过程
2014/08/13 面试题
英语商务邀请函范文
2014/01/16 职场文书
信息学院毕业生自荐信范文
2014/03/04 职场文书
房屋租赁协议书
2014/04/10 职场文书
论文指导教师评语
2014/04/28 职场文书
美食节策划方案
2014/05/26 职场文书
中秋节国旗下演讲稿
2014/09/13 职场文书
六一文艺汇演主持词
2015/06/30 职场文书
参加招聘会后的感想
2015/08/10 职场文书
创业计划书之水果店
2019/07/18 职场文书
PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库
2021/04/16 PHP
webpack的移动端适配方案小结
2021/07/25 Javascript
php去除deprecated的实例方法
2021/11/17 PHP
js 实现验证码输入框示例详解
2022/09/23 Javascript