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 相关文章推荐
MySQL相关说明
Jan 15 PHP
PHP生成随机用户名和密码的实现代码
Feb 27 PHP
php中filter函数验证、过滤用户输入的数据
Jan 13 PHP
PHP同时连接多个mysql数据库示例代码
Mar 17 PHP
php魔术函数__call()用法实例分析
Feb 13 PHP
PHP扩展程序实现守护进程
Apr 16 PHP
PHP开发中AJAX技术的简单应用
Dec 11 PHP
PHP观察者模式原理与简单实现方法示例
Aug 25 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
Sep 22 PHP
thinkPHP中U方法加密传递参数功能示例
May 29 PHP
Yii框架学习笔记之session与cookie简单操作示例
Apr 30 PHP
详解Laravel框架的依赖注入功能
May 27 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和XSS跨站攻击的防范
2007/04/17 PHP
php数组函数序列之array_keys() - 获取数组键名
2011/10/30 PHP
php使用正则表达式获取字符串中的URL
2016/12/29 PHP
PHP中类的自动加载的方法
2017/03/17 PHP
PHP发送邮件确认验证注册功能示例【修改别人邮件类】
2019/11/09 PHP
input、button的不同type值在ajax提交表单时导致的陷阱
2009/02/24 Javascript
JS 有名函数表达式全面解析
2010/03/19 Javascript
js 替换功能函数,用正则表达式解决,js的全部替换
2010/12/08 Javascript
基于JQuery的模拟苹果桌面Dock效果(稳定版)
2012/10/15 Javascript
javascript学习笔记(六)数据类型和JSON格式
2014/10/08 Javascript
JavaScript面试开发常用的知识点总结
2016/08/08 Javascript
js获取浏览器的各种属性
2017/04/27 Javascript
详解nodejs微信jssdk后端接口
2017/05/25 NodeJs
Angular.js前台传list数组由后台spring MVC接收数组示例代码
2017/07/31 Javascript
vue-cli常用设置总结
2018/02/24 Javascript
vue缓存的keepalive页面刷新数据的方法
2019/04/23 Javascript
基于Node的Axure文件在线预览的实现代码
2019/08/28 Javascript
vue-cli3.0实现一个多页面应用的历奇经历记录总结
2020/03/16 Javascript
[03:07]完美世界DOTA2联赛PWL DAY10 决赛集锦
2020/11/11 DOTA
python多线程编程中的join函数使用心得
2014/09/02 Python
Python实现Tab自动补全和历史命令管理的方法
2015/03/12 Python
将Python中的数据存储到系统本地的简单方法
2015/04/11 Python
python编写Logistic逻辑回归
2020/12/30 Python
python实现复制大量文件功能
2019/08/31 Python
Python numpy.zero() 初始化矩阵实例
2019/11/27 Python
HTML5实现Notification API桌面通知功能
2016/03/02 HTML / CSS
C语言编程练习
2012/04/02 面试题
Java程序员常见面试题
2015/07/16 面试题
大学生思想汇报范文
2013/12/31 职场文书
高等教育学自荐书范文
2014/02/10 职场文书
我的梦想演讲稿1000字
2014/08/21 职场文书
会计实训报告范文
2014/11/04 职场文书
人与自然的观后感
2015/06/18 职场文书
2019银行员工个人工作自我鉴定
2019/06/27 职场文书
祝福语集锦:给满月宝宝的祝福语
2019/11/20 职场文书
搭建zabbix监控以及邮件报警的超级详细教学
2022/07/15 Servers