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脚本数据库功能详解(下)
Oct 09 PHP
在PHP中操作Excel实例代码
Apr 29 PHP
ajax在joomla中的原生态应用代码
Jul 19 PHP
解析php中var_dump,var_export,print_r三个函数的区别
Jun 21 PHP
浅析PHP的ASCII码转换类
Jul 05 PHP
destoon二次开发模板及调用语法汇总
Jun 21 PHP
Symfony2创建基于域名的路由相关示例
Nov 14 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
Mar 04 PHP
PHP空值检测函数与方法汇总
Nov 19 PHP
ThinkPHP框架实现的邮箱激活功能示例
Jun 15 PHP
thinkPHP框架实现类似java过滤器的简单方法示例
Sep 05 PHP
PHP设计模式之适配器模式(Adapter)原理与用法详解
Dec 12 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 中的面向对象编程:通向大型 PHP 工程的办法
2006/12/03 PHP
Cakephp 执行主要流程
2010/03/24 PHP
joomla实现注册用户添加新字段的方法
2016/05/05 PHP
Chosen 基于jquery的选择框插件使用方法
2012/05/30 Javascript
分享XmlHttpRequest调用Webservice的一点心得
2012/07/20 Javascript
js继承call()和apply()方法总结
2014/12/08 Javascript
DOM基础教程之使用DOM
2015/01/19 Javascript
JavaScript Length 属性的总结
2015/11/02 Javascript
js仿微博实现统计字符和本地存储功能
2015/12/22 Javascript
Augularjs-起步详解
2016/07/08 Javascript
JavaScript实现多栏目切换效果
2016/12/12 Javascript
bootstrap table操作技巧分享
2017/02/15 Javascript
利用Javascript裁剪图片并存储的简单实现
2017/03/13 Javascript
JS变量及其作用域
2017/03/29 Javascript
python抓取网页时字符集转换问题处理方案分享
2014/06/19 Python
详解Django中的form库的使用
2015/07/18 Python
Python脚本实时处理log文件的方法
2016/11/21 Python
使用Python快速搭建HTTP服务和文件共享服务的实例讲解
2018/06/04 Python
Python定义二叉树及4种遍历方法实例详解
2018/07/05 Python
Python实现string字符串连接的方法总结【8种方式】
2018/07/06 Python
python 实现人和电脑猜拳的示例代码
2020/03/02 Python
python 操作mysql数据中fetchone()和fetchall()方式
2020/05/15 Python
Python设计密码强度校验程序
2020/07/30 Python
Python通过yagmail实现发送邮件代码解析
2020/10/27 Python
HTML5学习笔记之History API
2015/02/26 HTML / CSS
美国一家主营日韩美妆护肤品的在线商店:iMomoko
2016/09/11 全球购物
AVON雅芳官网:世界上最大的美容化妆品公司之一
2016/11/02 全球购物
小区门卫工作职责
2013/12/14 职场文书
教师的实习鉴定
2013/12/15 职场文书
致铅球运动员广播稿精选
2014/01/12 职场文书
英语简历自我评价
2014/01/26 职场文书
人民的好儿女观后感
2015/06/18 职场文书
小学学习委员竞选稿
2015/11/20 职场文书
2016秋季运动会开幕词
2016/03/04 职场文书
zabbix agent2 监控oracle数据库的方法
2021/05/13 Oracle
Python使用psutil库对系统数据进行采集监控的方法
2021/08/23 Python