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 相关文章推荐
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
Mar 13 PHP
PHP中10个不常见却非常有用的函数
Mar 21 PHP
PHP数组操作汇总 php数组的使用技巧
Jul 17 PHP
基于MySQL体系结构的分析
May 02 PHP
php防注入及开发安全详细解析
Aug 09 PHP
php删除左端与右端空格的方法
Nov 29 PHP
Mac环境下php操作mysql数据库的方法分享
May 11 PHP
WordPress导航菜单的滚动和淡入淡出效果的实现要点
Dec 14 PHP
Joomla实现组件中弹出一个模式(modal)窗口的方法
May 04 PHP
PHP 根据key 给二维数组分组
Dec 09 PHP
php上传excel表格并获取数据
Apr 27 PHP
php设计模式之观察者模式定义与用法经典示例
Sep 19 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
php桌面中心(三) 修改数据库
2007/03/11 PHP
php curl获取网页内容(IPV6下超时)的解决办法
2013/07/16 PHP
浅谈PHP调用Webservice思路及源码分享
2014/06/04 PHP
PHP正则表达式处理函数(PCRE 函数)实例小结
2019/05/09 PHP
JavaScript入门教程(10) 认识其他对象
2009/01/31 Javascript
jQuery UI Datepicker length为空或不是对象错误的解决方法
2010/12/19 Javascript
jquery使用ColorBox弹出图片组浏览层实例演示
2013/03/14 Javascript
js用拖动滑块来控制图片大小的方法
2015/02/27 Javascript
NodeJs中的VM模块详解
2015/05/06 NodeJs
jQuery基本选择器(实例及表单域value的获取方法)
2016/05/20 Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
2016/12/18 Javascript
Bootstrap select实现下拉框多选效果
2016/12/23 Javascript
Vue编写多地区选择组件
2017/08/21 Javascript
js+css实现打字效果
2020/06/24 Javascript
微信小程序实现工作时间段选择
2019/02/15 Javascript
微信小程序canvas分享海报功能
2019/10/31 Javascript
nuxt 页面路由配置,主页轮播组件开发操作
2020/11/05 Javascript
Django中对通过测试的用户进行限制访问的方法
2015/07/23 Python
在Python的Flask框架中构建Web表单的教程
2016/06/04 Python
Python三种遍历文件目录的方法实例代码
2018/01/19 Python
python实现植物大战僵尸游戏实例代码
2019/06/10 Python
django ManyToManyField多对多关系的实例详解
2019/08/09 Python
利用python在大量数据文件下删除某一行的例子
2019/08/21 Python
浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack
2020/06/23 Python
使用PDF.JS插件在HTML中预览PDF文件的方法
2018/08/29 HTML / CSS
Foot Locker意大利官网:全球领先的运动鞋和服装零售商
2017/05/30 全球购物
Beach Bunny Swimwear官网:设计师泳装和性感比基尼
2019/03/13 全球购物
美国踏板车和轻便摩托车销售网站:Mega Motor Madness
2020/02/26 全球购物
大学生校园创业计划书
2014/02/08 职场文书
班主任寄语大全
2014/04/04 职场文书
艺术设计专业个人求职信
2014/04/10 职场文书
学校就业推荐信范文
2014/05/19 职场文书
教师廉洁自律承诺书
2014/05/26 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
导游词之临安白水涧
2019/11/05 职场文书
navicat 连接Ubuntu虚拟机的mysql的操作方法
2022/04/02 MySQL