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数组函数序列之array_combine() - 数组合并函数使用说明
Oct 29 PHP
浅谈PHP与C#的值类型指向区别的详解
May 21 PHP
php中filter函数验证、过滤用户输入的数据
Jan 13 PHP
php对数组排序代码分享
Feb 24 PHP
利用“多说”制作留言板、评论系统
Jul 14 PHP
php cli配置文件问题分析
Oct 15 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
Dec 14 PHP
php+html5实现无刷新图片上传教程
Jan 22 PHP
微信公众号OAuth2.0网页授权问题浅析
Jan 21 PHP
PHP检查端口是否可以被绑定的方法示例
Aug 09 PHP
Laravel框架自定义验证过程实例分析
Feb 01 PHP
零基础php编程好学吗
Oct 11 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
thinkphp控制器调度使用示例
2014/02/24 PHP
linux下使用crontab实现定时PHP计划任务失败的原因分析
2014/07/05 PHP
PHP实现的增强性mhash函数
2015/05/27 PHP
PHP使用Mysqli类库实现完美分页效果的方法
2016/04/07 PHP
Yii框架防止sql注入,xss攻击与csrf攻击的方法
2016/10/18 PHP
PHP字符串和十六进制如何实现互相转换
2020/07/16 PHP
Alliance vs Liquid BO3 第二场2.13
2021/03/10 DOTA
angularjs基础教程
2014/12/25 Javascript
JavaScript获取表格(table)当前行的值、删除行、增加行
2015/07/03 Javascript
在JavaScript中如何解决用execCommand(
2015/10/19 Javascript
微信小程序 WXML、WXSS 和JS介绍及详解
2016/10/08 Javascript
jQuery实现简易的输入框字数计数功能示例
2017/01/16 Javascript
JavaScript中数组Array方法详解
2017/02/27 Javascript
详解如何使用Vue2做服务端渲染
2017/03/29 Javascript
AngularJS之自定义服务详解(factory、service、provider)
2017/04/14 Javascript
vue+webpack 打包文件 404 页面空白的解决方法
2018/02/28 Javascript
在 Angular6 中使用 HTTP 请求服务端数据的步骤详解
2018/08/06 Javascript
利用hasOwnProperty给数组去重的面试题分享
2018/11/05 Javascript
layui type2 通过url给iframe子页面传值的例子
2019/09/06 Javascript
[01:00:12]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第一场
2018/04/09 DOTA
python技能之数据导出excel的实例代码
2017/08/11 Python
python pandas库中DataFrame对行和列的操作实例讲解
2018/06/09 Python
Python 实现子类获取父类的类成员方法
2019/01/11 Python
python通过txt文件批量安装依赖包的实现步骤
2019/08/13 Python
使用Python的networkx绘制精美网络图教程
2019/11/21 Python
CSS3媒体查询(Media Queries)介绍
2013/09/12 HTML / CSS
如何在发生故障的节点上重新安装 SQL Server
2013/03/14 面试题
大四学生毕业自荐信
2013/11/07 职场文书
最新教师自我评价分享
2013/11/12 职场文书
节约用水的口号
2014/06/20 职场文书
小学生勤俭节约演讲稿
2014/08/28 职场文书
高中军训的心得体会
2014/09/01 职场文书
中秋节国旗下演讲稿
2014/09/13 职场文书
开展党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
2015年乡镇财政工作总结
2015/05/19 职场文书
党性修养心得体会2016
2016/01/21 职场文书