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中查询SQL Server或Sybase时TEXT字段被截断的解决方法
Mar 10 PHP
php购物网站支付paypal使用方法
Nov 28 PHP
PHP反射机制用法实例
Aug 28 PHP
php中get_object_vars()方法用法实例
Feb 08 PHP
简单谈谈PHP vs Node.js
Jul 17 PHP
php上传图片并压缩的实现方法
Dec 22 PHP
Codeigniter中集成smarty和adodb的方法
Mar 04 PHP
使用ltrace工具跟踪PHP库函数调用的方法
Apr 25 PHP
php+ajax实现带进度条的上传图片功能【附demo源码下载】
Sep 14 PHP
Android AsyncTack 异步任务实例详解
Nov 02 PHP
PHP curl批处理及多请求并发实现方法分析
Aug 15 PHP
PHP5中使用mysqli的prepare操作数据库的介绍
Mar 18 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解决安全问题的方法实例
2019/09/19 PHP
js类 from qq
2006/11/13 Javascript
JS 添加网页桌面快捷方式的代码详细整理
2012/12/27 Javascript
打豆豆小游戏 用javascript编写的[打豆豆]小游戏
2013/01/08 Javascript
javascript计算星座属相(十二生肖属相)示例代码
2014/01/09 Javascript
javascript实现3D变换的立体圆圈实例
2015/08/06 Javascript
微信小程序  audio音频播放详解及实例
2016/11/02 Javascript
利用JavaScript实现拖拽改变元素大小
2016/12/14 Javascript
详解如何较好的使用js
2016/12/16 Javascript
javascript 中设置window.location.href跳转无效问题解决办法
2017/02/09 Javascript
js仿微信公众平台打标签功能
2017/04/08 Javascript
关于echarts在节点显示动态数据及添加提示文本所遇到的问题
2018/04/20 Javascript
nodeJS进程管理器pm2的使用
2019/01/09 NodeJs
JS中的函数与对象的创建方式
2019/05/12 Javascript
小程序rich-text组件如何改变内部img图片样式的方法
2019/05/22 Javascript
JavaScript实现移动端拖动元素
2020/11/24 Javascript
[39:21]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.24
2019/09/10 DOTA
浅谈Python2.6和Python3.0中八进制数字表示的区别
2017/04/28 Python
python实现内存监控系统
2021/03/07 Python
python3使用pandas获取股票数据的方法
2018/12/22 Python
基于python解线性矩阵方程(numpy中的matrix类)
2019/10/21 Python
python中urllib.request和requests的使用及区别详解
2020/05/05 Python
ansible-playbook实现自动部署KVM及安装python3的详细教程
2020/05/11 Python
Python基于time模块表示时间常用方法
2020/06/18 Python
Python json格式化打印实现过程解析
2020/07/21 Python
Python timeit模块原理及使用方法
2020/10/10 Python
HTML5仿手机微信聊天界面
2016/03/18 HTML / CSS
Fossil德国官网:化石手表、手袋、珠宝及配件
2019/12/07 全球购物
毕业生求职的求职信
2013/12/05 职场文书
部队党性分析材料
2014/02/16 职场文书
初中班主任经验交流材料
2014/05/16 职场文书
2015年父亲节活动总结
2015/02/12 职场文书
公务员年度个人总结
2015/02/12 职场文书
2016年小学生迎国庆广播稿
2015/12/18 职场文书
创业计划书之旅游网站
2019/09/06 职场文书
python 远程执行命令的详细代码
2022/02/15 Python