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之第十天
Oct 09 PHP
生成sessionid和随机密码的例子
Oct 09 PHP
PHP初学入门
Nov 19 PHP
利用php递归实现无限分类 格式化数组的详解
Jun 08 PHP
php中time()和mktime()方法的区别
Sep 28 PHP
对PHP语言认识上需要避免的10大误区
Jun 12 PHP
php的mkdir()函数创建文件夹比较安全的权限设置方法
Jul 28 PHP
php实现处理输入转义字符的代码
Nov 08 PHP
PHP删除二维数组中相同元素及数组重复值的方法示例
May 05 PHP
PHP简单实现循环链表功能示例
Nov 10 PHP
Thinkphp5.0框架的Db操作实例分析【连接、增删改查、链式操作等】
Oct 11 PHP
php的instanceof和判断闭包Closure操作示例
Jan 26 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 EOT定界符的使用详解
2008/09/30 PHP
JSON在PHP中的应用介绍
2012/09/08 PHP
Zend的MVC机制使用分析(一)
2013/05/02 PHP
laravel安装和配置教程
2014/10/29 PHP
PHP实现链式操作的三种方法详解
2017/11/16 PHP
用js重建星际争霸
2006/12/22 Javascript
form表单中去掉默认的enter键提交并绑定js方法实现代码
2013/04/01 Javascript
jquery 模板的应用示例
2013/11/12 Javascript
jQuery插件scroll实现无缝滚动效果
2015/04/27 Javascript
用js编写的简单的计算器代码程序
2015/08/04 Javascript
js简单判断移动端系统的方法
2016/02/25 Javascript
完美解决JS文件页面加载时的阻塞问题
2016/12/18 Javascript
微信小程序 获取session_key和openid的实例
2017/08/17 Javascript
vue实现简单的星级评分组件源码
2018/11/16 Javascript
vue element动态渲染、移除表单并添加验证的实现
2019/01/16 Javascript
一篇文章弄懂javascript中的执行栈与执行上下文
2019/08/09 Javascript
Js实现复选框的全选、全不选反选功能代码实例
2020/02/28 Javascript
js异步接口并发数量控制的方法示例
2020/11/22 Javascript
python中range()与xrange()用法分析
2016/09/21 Python
python Tcp协议发送和接收信息的例子
2019/07/22 Python
Python找出列表中出现次数最多的元素三种方式
2020/02/24 Python
python numpy生成等差数列、等比数列的实例
2020/02/25 Python
python selenium 获取接口数据的实现
2020/12/07 Python
CSS3 please 跨浏览器的CSS3产生器
2010/03/14 HTML / CSS
详解css3中 text-fill-color属性
2019/07/08 HTML / CSS
Crucial英睿达法国官网:内存条及SSD固态硬盘升级
2018/07/13 全球购物
iPad和Surface Pro蓝牙键盘:Brydge
2018/11/10 全球购物
Ado与Ado.net的相同与不同
2014/12/08 面试题
银行会计财务工作个人的自我评价
2013/10/29 职场文书
质检部岗位职责
2013/11/11 职场文书
应届毕业生自我鉴定范文
2013/12/27 职场文书
爱牙日活动总结
2014/08/29 职场文书
毕业论文致谢部分怎么写
2015/05/14 职场文书
单位收入证明范本
2015/06/18 职场文书
趣味运动会简讯
2015/07/20 职场文书
Python中可变和不可变对象的深入讲解
2021/08/02 Python