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
php数组应用之比较两个时间的相减排序
Aug 18 PHP
php获取用户IPv4或IPv6地址的代码
Nov 15 PHP
ThinkPHP Mobile使用方法简明教程
Jun 18 PHP
国产PHP开发框架myqee新手快速入门教程
Jul 14 PHP
php的mkdir()函数创建文件夹比较安全的权限设置方法
Jul 28 PHP
PHP采用curl模仿用户登陆新浪微博发微博的方法
Nov 07 PHP
PHP中isset与array_key_exists的区别实例分析
Jun 02 PHP
CodeIgniter钩子用法实例详解
Jan 20 PHP
必须收藏的23个php实用代码片段
Feb 02 PHP
PHP面向对象程序设计OOP继承用法入门示例
Dec 27 PHP
tp5递归 无限级分类详解
Oct 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数组函数序列 之array_count_values() 统计数组中所有值出现的次数函数
2011/10/29 PHP
php根据命令行参数生成配置文件详解
2019/03/15 PHP
网页自动刷新,不产生嗒嗒声的一个解决方法
2007/03/27 Javascript
学习JS面向对象成果 借国庆发布个最新作品与大家交流
2009/10/03 Javascript
有趣的JavaScript数组长度问题代码说明
2011/01/20 Javascript
JQUERY的属性选择符和自定义选择符使用方法(二)
2011/04/07 Javascript
jQuery 1.7.2中getAll方法的疑惑分析
2012/05/23 Javascript
JS获取月的最后一天与JS得到一个月份最大天数的实例代码
2013/12/16 Javascript
jquery禁止输入数字以外的字符的示例(纯数字验证码)
2014/04/10 Javascript
JavaScript实现的MD5算法完整实例
2016/02/02 Javascript
使用javascript插入样式
2016/03/14 Javascript
AngularJS表格样式简单设置方法示例
2017/03/03 Javascript
Axios学习笔记之使用方法教程
2017/07/21 Javascript
LayUi中接口传数据成功,表格不显示数据的解决方法
2018/08/19 Javascript
解决vue中使用proxy配置不同端口和ip接口问题
2019/08/14 Javascript
微信小程序实现简单的select下拉框
2020/11/23 Javascript
python实现两张图片的像素融合
2019/02/23 Python
Python操作MySQL数据库的两种方式实例分析【pymysql和pandas】
2019/03/18 Python
python实现nao机器人手臂动作控制
2019/04/29 Python
python GUI图形化编程wxpython的使用
2019/07/19 Python
用python生成与调用cntk模型代码演示方法
2019/08/26 Python
python numpy数组复制使用实例解析
2020/01/10 Python
聊聊python中的异常嵌套
2020/09/01 Python
浅析HTML5的WebSocket与服务器推送事件
2016/02/19 HTML / CSS
HTML5实现多张图片上传功能
2016/03/11 HTML / CSS
html5唤起app的方法
2017/11/30 HTML / CSS
美国在线家装零售商:Build.com
2016/09/02 全球购物
SmartBuyGlasses中国:唯视良品(销售名牌太阳镜、墨镜和眼镜框)
2017/07/03 全球购物
毕业生怎样写好自荐信
2013/11/11 职场文书
课改先进个人汇报材料
2014/01/26 职场文书
违反校纪校规检讨书
2014/02/15 职场文书
英语教学随笔感言
2014/02/20 职场文书
教师节感谢信
2015/01/22 职场文书
酒店收银员岗位职责
2015/04/07 职场文书
2016年大学生实习单位评语
2015/12/01 职场文书
MySQL 外连接语法之 OUTER JOIN
2022/04/09 MySQL