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 相关文章推荐
PHP中的array数组类型分析说明
Jul 27 PHP
php中突破基于HTTP_REFERER的防盗链措施(stream_context_create)
Mar 29 PHP
php下载文件的代码示例
Jun 29 PHP
PHP实现图片旋转效果实例代码
Oct 01 PHP
php图片处理函数获取类型及扩展名实例
Nov 19 PHP
几个实用的PHP内置函数使用指南
Nov 27 PHP
php中session与cookie的比较
Jan 27 PHP
php+mysqli使用预处理技术进行数据库查询的方法
Jan 28 PHP
YII视图整合kindeditor扩展的方法
Jul 13 PHP
PHP 7安装调试工具Xdebug扩展的方法教程
Jun 17 PHP
PHP 进度条函数的简单实例
Sep 19 PHP
php 删除一维数组中某一个值元素的操作方法
Feb 01 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
file_get_contents获取不到网页内容的解决方法
2013/03/07 PHP
php实现的单一入口应用程序实例分析
2015/09/23 PHP
php 输入输出流详解及示例代码
2016/08/25 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
windows系统php环境安装swoole具体步骤
2021/03/04 PHP
彪哥1.1(智能表格)提供下载
2006/09/07 Javascript
初探jquery——表单应用范例
2007/02/20 Javascript
Jquery 学习笔记(一)
2009/10/13 Javascript
JS简单实现登陆验证附效果图
2013/11/19 Javascript
js中把JSON字符串转换成JSON对象最好的方法
2014/03/21 Javascript
javascript实现动态模态绑定grid过程代码
2014/09/22 Javascript
javascript实现依次输入input自动定焦
2014/12/23 Javascript
判断浏览器的内核及版本号方法汇总
2015/01/05 Javascript
Js为表单动态添加节点内容的方法
2015/02/10 Javascript
jQuery实现仿腾讯迷你首页选项卡效果代码
2015/09/17 Javascript
jquery attr()设置和获取属性值实例教程
2016/09/25 Javascript
基于bootstrap按钮式下拉菜单组件的搜索建议插件
2017/03/25 Javascript
微信小程序仿美团城市选择
2018/06/06 Javascript
python简单商城购物车实例代码
2018/03/15 Python
python如何拆分含有多种分隔符的字符串
2018/03/20 Python
Python基于win32ui模块创建弹出式菜单示例
2018/05/09 Python
解决Pandas to_json()中文乱码,转化为json数组的问题
2018/05/10 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
2018/05/24 Python
在主流系统之上安装Pygame的方法
2020/05/20 Python
德国旅游网站:weg.de
2018/06/03 全球购物
介绍一下Python下range()函数的用法
2013/11/07 面试题
关于Java finally的面试题
2016/04/27 面试题
初任培训自我鉴定
2013/10/07 职场文书
电子商务专业学生的自我鉴定
2013/11/28 职场文书
趣味体育活动方案
2014/02/08 职场文书
《小小雨点》教学反思
2014/02/18 职场文书
服装设计专业毕业生求职信
2014/04/09 职场文书
事业单位工作人员2015年度思想工作总结
2015/10/15 职场文书
礼貌问候语大全
2015/11/10 职场文书
Python极值整数的边界探讨分析
2021/09/15 Python
Vue.js中v-for指令的用法介绍
2022/03/13 Vue.js