php session处理的定制


Posted in PHP onMarch 16, 2009

user-define-session-inc.php文件代码:

<?php 
function mysession_open($save_path, $session_name) 
{ 
@mysql_connect("localhost", "root","1981427") //选择数据库之前需要先连接数据库服务器 
or die("数据库服务器连接失败"); 
@mysql_select_db("test") //选择数据库mydb 
or die("数据库不存在或不可用"); 
return true; 
} function mysession_close() 
{ 
return true; 
} 
function mysession_read($key) 
{ 
@mysql_connect("localhost", "root","1981427") //选择数据库之前需要先连接数据库服务器 
or die("数据库服务器连接失败"); 
@mysql_select_db("test") //选择数据库mydb 
or die("数据库不存在或不可用"); 
$expiry_time = time(); //获取Session失效时间 
//执行SQL语句获得Session的值 
$query = @mysql_query("select session_data from mysession " 
."where session_key = '$key' and session_expiry > $expiry_time") 
or die("SQL语句执行失败"); 
if($row = mysql_fetch_array($query)) 
return $row['session_data']; 
else 
return false; 
} 
function mysession_write($key, $data) 
{ 
@mysql_connect("localhost", "root","1981427") //选择数据库之前需要先连接数据库服务器 
or die("数据库服务器连接失败"); 
@mysql_select_db("test") //选择数据库mydb 
or die("数据库不存在或不可用"); 
$expiry_time = time() + 1200; //获取Session失效时间 
//查询Session的键值是否已经存在 
$query = @mysql_query("select session_data from mysession " 
."where session_key = '$key'") 
or die("SQL语句执行失败"); 
//如果不存在,则执行插入操作,否则执行更新操作 
if(mysql_numrows($query) == 0) 
{ 
//执行SQL语句插入Session的值 
$query = @mysql_query("insert into mysession values('$key', '$data', $expiry_time)") 
or die("SQL语句执行失败"); 
} 
else 
{ 
//执行SQL语句更新Session的值 
$query = @mysql_query("update mysession set " 
."session_data = '$data', session_expiry = $expiry_time " 
."where session_key = '$key'") 
or die("SQL语句执行失败"); 
} 
return $query; 
} 
function mysession_destroy($key) 
{ 
@mysql_connect("localhost", "root","1981427") //选择数据库之前需要先连接数据库服务器 
or die("数据库服务器连接失败"); 
@mysql_select_db("test") //选择数据库mydb 
or die("数据库不存在或不可用"); 
//执行SQL语句删除Session 
$query = @mysql_query("delete from mysession where session_key = '$key'") 
or die("SQL语句执行失败"); 
return $query; 
} 
function mysession_gc($expiry_time) 
{ 
@mysql_connect("localhost", "root","1981427") //选择数据库之前需要先连接数据库服务器 
or die("数据库服务器连接失败"); 
@mysql_select_db("test") //选择数据库mydb 
or die("数据库不存在或不可用"); 
$expiry_time = time(); 
//执行SQL语句删除Session 
$query = @mysql_query("delete from mysession where session_expiry < $expiry_time") 
or die("SQL语句执行失败"); 
return $query; 
} 
//设置用户自定义Session存储 
session_set_save_handler('mysession_open', 
'mysession_close', 
'mysession_read', 
'mysession_write', 
'mysession_destroy', 
'mysession_gc'); 
?>

<?php 
include('user-define-session-inc.php'); //包含session_set_save_handler定义的文件 session_start(); 
$_SESSION['username'] = "zhuzhao"; 
$_SESSION['password'] = "123456"; 
?>

<?php 
include('user-define-session-inc.php'); //包含session_set_save_handler定义的文件 session_start(); 
echo "UserName:".$_SESSION['username']."<BR>"; 
echo "PassWord:".$_SESSION['password']."<BR>"; 
?>
PHP 相关文章推荐
社区(php&amp;&amp;mysql)六
Oct 09 PHP
基于mysql的论坛(5)
Oct 09 PHP
php下统计用户在线时间的一种尝试
Aug 26 PHP
php学习之简单计算器实现代码
Jun 09 PHP
phpize的深入理解
Jun 03 PHP
深入理解:单一入口、MVC、ORM、CURD、ActiveRecord概念
Jun 06 PHP
php curl选项列表(超详细)
Jul 01 PHP
PHP输出英文时间日期的安全方法(RFC 1123格式)
Jun 13 PHP
php使用Image Magick将PDF文件转换为JPG文件的方法
Apr 01 PHP
PHP5.2中PDO的简单使用方法
Mar 25 PHP
PHP判断文件是否被引入的方法get_included_files用法示例
Nov 29 PHP
PHP设计模式之状态模式定义与用法详解
Apr 02 PHP
php session 检测和注销
Mar 16 #PHP
php session 预定义数组
Mar 16 #PHP
php 无限级缓存的类的扩展
Mar 16 #PHP
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
Mar 13 #PHP
PHP 文件类型判断代码
Mar 13 #PHP
php discuz 主题表和回帖表的设计
Mar 13 #PHP
php 获取mysql数据库信息代码
Mar 12 #PHP
You might like
php curl常见错误:SSL错误、bool(false)
2011/12/28 PHP
解析php中的fopen()函数用打开文件模式说明
2013/06/20 PHP
php弹出对话框实现重定向代码
2014/01/23 PHP
php实现base64图片上传方式实例代码
2017/02/22 PHP
Yii2表单事件之Ajax提交实现方法
2017/05/04 PHP
关于Yii中模型场景的一些简单介绍
2019/09/22 PHP
jquery选择器排除某个DOM元素的方法(实例演示)
2014/04/25 Javascript
jquery等待效果示例
2014/05/01 Javascript
AngularJS基础 ng-cloak 指令简单示例
2016/08/01 Javascript
实例解析js中try、catch、finally的执行规则
2017/02/24 Javascript
基于vue2框架的机器人自动回复mini-project实例代码
2017/06/13 Javascript
Vue.js列表渲染绑定jQuery插件的正确姿势
2017/06/29 jQuery
javascript数组拍平方法总结
2018/01/20 Javascript
微信小程序实现日历功能
2018/11/27 Javascript
原生JS实现动态添加新元素、删除元素方法
2019/05/05 Javascript
微信小程序实用代码段(收藏版)
2019/12/17 Javascript
js 获取本周、上周、本月、上月、本季度、上季度的开始结束日期
2020/02/01 Javascript
python简单文本处理的方法
2015/07/10 Python
Python多层装饰器用法实例分析
2018/02/09 Python
对python中for、if、while的区别与比较方法
2018/06/25 Python
python实现时间o(1)的最小栈的实例代码
2018/07/23 Python
Python获取对象属性的几种方式小结
2020/03/12 Python
如何在scrapy中捕获并处理各种异常
2020/09/28 Python
python 实现端口扫描工具
2020/12/18 Python
秘鲁购物网站:Linio秘鲁
2017/04/07 全球购物
来自世界各地的优质葡萄酒:VineShop24
2018/07/09 全球购物
武汉东之林科技有限公司机试
2013/09/17 面试题
C#的几个面试问题
2016/05/22 面试题
旅游业大学生创业计划书
2014/01/31 职场文书
工业自动化专业自荐信范文
2014/04/10 职场文书
汉语言文学毕业求职信
2014/07/17 职场文书
暑期家教宣传单
2015/07/14 职场文书
情况说明书格式及范文
2019/06/24 职场文书
导游词之山西祁县乔家大院
2019/10/14 职场文书
docker-compose部署Yapi的方法
2022/04/08 Servers
vue 数字翻牌器动态加载数据
2022/04/20 Vue.js