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(3)
Oct 09 PHP
用Zend Encode编写开发PHP程序
Feb 21 PHP
简单的PHP留言本实例代码
May 09 PHP
php中将时间差转换为字符串提示的实现代码
Aug 08 PHP
php 带逗号千位符数字的处理方法
Jan 10 PHP
深入eAccelerator与memcached的区别详解
Jun 06 PHP
php设计模式之简单工厂模式详解
Sep 04 PHP
基于PHP如何把汉字转化为拼音
Dec 11 PHP
PHP工程师VIM配置分享
Dec 15 PHP
简介WordPress中用于获取首页和站点链接的PHP函数
Dec 17 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
Mar 23 PHP
php模仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(中)
Jun 11 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面向对象的使用教程 简单数据库连接
2006/11/25 PHP
php实现的常见排序算法汇总
2014/09/08 PHP
PHP中trim()函数简单使用指南
2015/04/16 PHP
PHP后期静态绑定之self::限制实例分析
2018/12/21 PHP
使用JQuery进行跨域请求
2010/01/25 Javascript
js读取配置文件自写
2014/02/11 Javascript
使用Jquery获取带特殊符号的ID 标签的方法
2014/04/30 Javascript
js获取url中&quot;?&quot;后面的字串方法
2014/05/15 Javascript
使用js画图之画切线
2015/01/12 Javascript
提交按钮的name='submit'引起的js失效问题及原因
2015/02/25 Javascript
jQuery背景插件backstretch使用指南
2015/04/21 Javascript
jQuery实现的多屏图像图层切换效果实例
2015/05/07 Javascript
JavaScript动态生成二维码图片
2016/04/20 Javascript
异步加载JS、CSS代码(推荐)
2016/06/15 Javascript
基于jQuery实现滚动切换效果
2016/12/02 Javascript
基于LayUI实现前端分页功能的方法
2017/07/22 Javascript
vue使用v-for实现hover点击效果
2018/09/29 Javascript
微信小程序非swiper组件实现的自定义伪3D轮播图效果示例
2018/12/11 Javascript
利用百度echarts实现图表功能简单入门示例【附源码下载】
2019/06/10 Javascript
vue-cli随机生成port源码的方法
2019/09/02 Javascript
vue导航栏部分的动态渲染实例
2019/11/01 Javascript
jQuery表单校验插件validator使用方法详解
2020/02/18 jQuery
wepy--用vantUI 实现上弹列表并选择相应的值操作
2020/11/03 Javascript
在PyCharm中三步完成PyPy解释器的配置的方法
2018/10/29 Python
python 数据提取及拆分的实现代码
2019/08/26 Python
Python 中list ,set,dict的大规模查找效率对比详解
2019/10/11 Python
详解查看Python解释器路径的两种方式
2020/10/15 Python
VSCode中autopep8无法运行问题解决方案(提示Error: Command failed,usage)
2021/03/02 Python
CSS3弹性盒模型开发笔记(二)
2016/04/26 HTML / CSS
国外平面设计第一市场:99designs
2016/10/25 全球购物
新锐科技Java程序员面试题
2016/07/25 面试题
酒店管理专业毕业生自我鉴定
2014/09/29 职场文书
人与自然的观后感
2015/06/18 职场文书
消费者投诉书范文
2015/07/02 职场文书
企业培训简报范文
2015/07/20 职场文书
JavaScript中的LHS和RHS分析详情
2022/04/06 Javascript