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 木马攻击防御技巧
Jun 13 PHP
php多用户读写文件冲突的解决办法
Nov 06 PHP
PHP COOKIE及时生效的方法介绍
Feb 14 PHP
自编函数解决pathinfo()函数处理中文问题
Nov 03 PHP
php读取csv数据保存到数组的方法
Jan 03 PHP
php版微信返回用户text输入的方法
Nov 14 PHP
tp框架(thinkPHP)实现三次登陆密码错误之后锁定账号功能示例
May 24 PHP
PHP基于curl实现模拟微信浏览器打开微信链接的方法示例
Feb 15 PHP
php常用字符串查找函数strstr()与strpos()实例分析
Jun 21 PHP
Laravel 自带的Auth验证登录方法
Sep 30 PHP
laravel框架select2多选插件初始化默认选中项操作示例
Feb 18 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
Apr 04 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
推荐Discuz!5的PHP代码高亮显示与实现可运行代码
2007/03/15 PHP
php读取文件内容的方法汇总
2015/01/24 PHP
PHP获取某个月最大天数(最后一天)的方法
2015/07/29 PHP
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间
2016/05/06 PHP
php基于闭包实现函数的自调用(递归)实例分析
2016/11/11 PHP
PHP学习记录之数组函数
2018/06/01 PHP
Laravel框架实现即点即改功能的方法分析
2019/10/31 PHP
javascript 读取xml,写入xml 实现代码
2009/07/10 Javascript
jQuery EasyUI API 中文文档 - Calendar日历使用
2011/10/19 Javascript
JS截取url中问号后面参数的值信息
2014/04/29 Javascript
js判断文件格式及大小的简单实例(必看)
2016/10/11 Javascript
Node.js下自定义错误类型详解
2016/10/17 Javascript
Angular ng-repeat遍历渲染完页面后执行其他操作详细介绍
2016/12/13 Javascript
基于BootStrap栅格栏系统完成网站底部版权信息区
2016/12/23 Javascript
激动人心的 Angular HttpClient的源码解析
2017/07/10 Javascript
JS随机排序数组实现方法分析
2017/10/11 Javascript
node.js中fs文件系统目录操作与文件信息操作
2018/02/24 Javascript
深入解读Node.js中的koa源码
2019/06/17 Javascript
JavaScript setInterval()与setTimeout()计时器
2019/12/27 Javascript
vue v-for出来的列表,点击某个li使得当前被点击的li字体变红操作
2020/07/17 Javascript
[02:08]我的刀塔不可能这么可爱 胡晓桃_1
2014/06/20 DOTA
[01:10:49]Secret vs VGJ.S 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
Python学习资料
2007/02/08 Python
python目录与文件名操作例子
2016/08/28 Python
Python 中urls.py:URL dispatcher(路由配置文件)详解
2017/03/24 Python
django中SMTP发送邮件配置详解
2019/07/19 Python
Django Model中字段(field)的各种选项说明
2020/05/19 Python
python3实现语音转文字(语音识别)和文字转语音(语音合成)
2020/10/14 Python
中间件的定义
2016/08/09 面试题
经典英文广告词
2014/03/18 职场文书
士力架广告词
2014/03/20 职场文书
常务副总经理任命书
2014/06/05 职场文书
学校运动会报道稿
2014/09/23 职场文书
企业开业庆典答谢词
2015/01/20 职场文书
员工旷工检讨书
2015/08/15 职场文书
postgresql中如何执行sql文件
2023/05/08 PostgreSQL