php自定义session示例分享


Posted in PHP onApril 22, 2014

下面为session类的代码

<?php
class session
{
 static function init()
 {
  session_set_save_handler(
    array("session","open"),
    array("session","close"),
    array("session","read"),
    array("session","write"),
    array("session","destroy"),
    array("session","gc")
  );
 } static function open($save_path,$session_name)
 {
  echo "session opening!<br>";
  /*global $db,$REMOTE_ADDR;
   $rs = $db->Execute("select * from Sessions where SessionID='".session_id()."'");
  $arry=$rs->FetchRow();
  if( $rs && $arry)
  {
  $db->Execute("update Sessions set SessionLast=NOW() where SessionID='".session_id()."'");
  }
  else
  {
  $query = "insert into Sessions set SessionID='".session_id()."',SessionName='$REMOTE_ADDR',SessionLast='NOW()'";
  //echo $query;
  $db->Execute($query);
  }*/
  return true;
 }
 static function close()
 {
  return(true);
 }
 static function read($id)
 {
  echo "session reading now!<br>";
  global $db;
  return true;
  $timenow = strftime("%Y-%m-%d %H:%M:%S", time());
  $query = "select SessionData from Sessions where SessionID='$id' and SessionLast > '$timenow'";
  $rs = $db->Execute($query);
  if(list($SessionData) = $rs->FetchRow())
  {
   //echo $SessionData;
   return $SessionData;
  }
  else
  {
   return false;
  }
 }
 static function write($id,$sess_data)
 {
  echo "session writing now!<br>";
  global $db;
  $rs = $db->Execute("select SessionID from Sessions where SessionID='$id'");
  $num = $rs->RecordCount();
  $unix_time = time()+MY_SESS_TIME;
  //echo MY_SESS_TIME;
  $dateleft = strftime("%Y-%m-%d %H:%M:%S", $unix_time);
  if($num <= 0)
  {
   $sql = "insert into Sessions set SessionData='$sess_data', SessionName='".$_SERVER["REMOTE_ADDR"]."', SessionLast='$dateleft', SessionID='".session_id()."'";
  }
  else
  {
   $sql = "update Sessions set SessionData='$sess_data', SessionName='".$_SERVER["REMOTE_ADDR"]."', SessionLast='$dateleft' where SessionID='$id'";
  }
  $db->Execute($sql);
 }
 static function destroy($id)
 {
  echo "session destroying now!<br>";
  global $db;
  $sql = "DELETE FROM Sessions WHERE `SessionID` = '$id'";
  $rs = $db->Execute($sql);
  return $rs;
  // $sess_file = "$sess_save_path/sess_$id";
  //return(@unlink($sess_file));
 }
 /*********************************************
  * WARNING - You will need to implement some *
 * sort of garbage collection routine here. *
 *********************************************/
 static function gc($maxlifetime)
 {
  echo "session maxlifetime now!<br>";
  global $db;
  $timenow = strftime("%Y-%m-%d %H:%M:%S", time());
  $sql = "DELETE FROM `$table_sessions` WHERE `SessionLast` < '$timenow'";
  return $sess_db->Execute($sql);
  //echo "now gc!<br>";
  return true;
 }
 // proceed to use sessions normally
}

使用方法

include("session.class.php"); 
session::init(); 
session_start(); 
define("MY_SESS_TIME", 3600); //SESSION 生存时长 
$_SESSION["test"] = "abcdef";
PHP 相关文章推荐
PHP编码规范-php coding standard
Mar 16 PHP
php循环检测目录是否存在并创建(循环创建目录)
Jan 06 PHP
PHP-Java-Bridge使用笔记
Sep 22 PHP
php实现的Timer页面运行时间监测类
Sep 24 PHP
php判断访问IP的方法
Jun 19 PHP
php curl抓取网页的介绍和推广及使用CURL抓取淘宝页面集成方法
Nov 30 PHP
header与缓冲区之间的深层次分析
Jul 30 PHP
PHP 5.6.11中CURL模块问题的解决方法
Aug 08 PHP
PHP基于GD库的图像处理方法小结
Sep 27 PHP
PHP文件上传处理案例分析
Oct 15 PHP
浅谈php中curl、fsockopen的应用
Dec 10 PHP
详解php中生成标准uuid(guid)的方法
Apr 28 PHP
php cli换行示例
Apr 22 #PHP
php使用百度天气接口示例
Apr 22 #PHP
phpmailer中文乱码问题的解决方法
Apr 22 #PHP
PHP函数addslashes和mysql_real_escape_string的区别
Apr 22 #PHP
自己写了一个php检测文件编码的函数
Apr 21 #PHP
CodeIgniter框架提示Disallowed Key Characters的解决办法
Apr 21 #PHP
PHP5中实现多态的两种方法实例分享
Apr 21 #PHP
You might like
Javascript与PHP验证用户输入URL地址是否正确
2014/10/09 PHP
PHP自带方法验证邮箱、URL、IP是否合法的函数
2016/12/08 PHP
json 入门基础教程 推荐
2009/10/31 Javascript
javascript跟随滚动效果插件代码(javascript Follow Plugin)
2013/08/03 Javascript
JS 实现Table相同行的单元格自动合并示例代码
2013/08/27 Javascript
让html页面不缓存js的实现方法
2014/10/31 Javascript
jQuery中live()方法用法实例
2015/01/19 Javascript
自定义函数实现IE7与IE8不兼容js中trim函数的问题
2015/02/03 Javascript
AngularJS入门教程之数据绑定用法示例
2016/11/01 Javascript
validationEngine 表单验证插件使用实例代码
2017/06/15 Javascript
jQuery实现简单的计时器功能实例分析
2017/08/29 jQuery
vue 挂载路由到头部导航的方法
2017/11/13 Javascript
vue常用高阶函数及综合实例
2021/02/25 Vue.js
[41:52]2018DOTA2亚洲邀请赛3月29日 小组赛A组 TNC VS OpTic
2018/03/30 DOTA
Python3中的真除和Floor除法用法分析
2016/03/16 Python
简单谈谈Python中的反转字符串问题
2016/10/24 Python
Python调用C++程序的方法详解
2017/01/24 Python
Python多线程实现同步的四种方式
2017/05/02 Python
python面向对象_详谈类的继承与方法的重载
2017/06/07 Python
python3 pillow生成简单验证码图片的示例
2017/09/19 Python
python中判断文件编码的chardet(实例讲解)
2017/12/21 Python
win8.1安装Python 2.7版环境图文详解
2019/07/01 Python
pytorch获取vgg16-feature层输出的例子
2019/08/20 Python
Python垃圾回收机制三种实现方法
2020/04/27 Python
css3与html5实现响应式导航菜单(导航栏)效果分享
2014/02/12 HTML / CSS
英国最大的汽车交易网站:Auto Trader UK
2016/09/23 全球购物
S’well Bottle保温杯官网:绝缘不锈钢水瓶
2018/05/09 全球购物
中国旅游网站:途牛旅游网
2019/09/29 全球购物
程序员求职信
2014/04/16 职场文书
市场营销专业求职信
2014/06/17 职场文书
扶贫办主任查摆“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
建筑质检员岗位职责
2015/04/08 职场文书
初中政治教师教学反思
2016/02/23 职场文书
旅游安全责任协议书
2016/03/22 职场文书
导游词之四川武侯祠
2019/10/21 职场文书
python自动化调用百度api解决验证码
2021/04/13 Python