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 相关文章推荐
Win9x/ME下Apache+PHP安装配置
Oct 09 PHP
用PHP实现ODBC数据分页显示一例
Oct 09 PHP
10条PHP编程习惯助你找工作
Sep 29 PHP
DedeCMS 核心类TypeLink.class.php摘要笔记
Apr 07 PHP
防止用户利用PHP代码DOS造成用光网络带宽
Mar 01 PHP
php常用文件操作函数汇总
Nov 22 PHP
PHP mysql事务问题实例分析
Jan 18 PHP
微信公众号开发之语音消息识别php代码
Aug 08 PHP
PHP文件上传、客户端和服务器端加限制、抓取错误信息、完整步骤解析
Jan 12 PHP
laravel 事件/监听器实例代码
Apr 12 PHP
laravel框架的安装与路由实例分析
Oct 11 PHP
PHP实现rar解压读取扩展包小结
Jun 03 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 生成WML页面方法详解
2009/08/09 PHP
PHP 裁剪图片成固定大小代码方法
2009/09/09 PHP
PHP中的string类型使用说明
2010/07/27 PHP
PHP设计模式之模板方法模式定义与用法详解
2018/04/02 PHP
通过jquery实现tab标签浏览效果
2007/02/20 Javascript
javascript下有关dom以及xml节点访问兼容问题
2007/11/26 Javascript
无缝滚动js代码通俗易懂(自写)
2013/06/19 Javascript
子页向父页传值示例
2013/11/27 Javascript
JavaScript实现简单的数字倒计时
2015/05/15 Javascript
JavaScript中的原型prototype属性使用详解
2015/06/05 Javascript
JS插件plupload.js实现多图上传并显示进度条
2016/11/29 Javascript
vue组件间通信解析
2017/03/01 Javascript
Vue 2.X的状态管理vuex记录详解
2017/03/23 Javascript
详解vue-cli + webpack 多页面实例应用
2017/04/25 Javascript
JavaScript监听手机物理返回键的两种解决方法
2017/08/14 Javascript
JavaScript面向对象精要(上部)
2017/09/12 Javascript
vue解决弹出蒙层滑动穿透问题的方法
2018/09/22 Javascript
微信小程序人脸识别功能代码实例
2019/05/07 Javascript
Vue实现滑动拼图验证码功能
2019/09/15 Javascript
python使用WMI检测windows系统信息、硬盘信息、网卡信息的方法
2015/05/15 Python
python多线程方式执行多个bat代码
2016/06/07 Python
Python实现统计给定列表中指定数字出现次数的方法
2018/04/11 Python
将Dataframe数据转化为ndarry数据的方法
2018/06/28 Python
漂亮的Django Markdown富文本app插件的实现
2019/01/02 Python
Python企业编码生成系统总体系统设计概述
2019/07/26 Python
浅谈PyQt5中异步刷新UI和Python多线程总结
2019/12/13 Python
python实现移动木板小游戏
2020/10/09 Python
什么是测试驱动开发(TDD)
2012/02/15 面试题
广告传媒专业应届生求职信
2014/03/01 职场文书
2014大学生职业生涯规划书最新范文
2014/09/13 职场文书
网站出售协议书范文
2014/10/10 职场文书
捐助倡议书
2015/01/19 职场文书
高质量“欢迎词”
2019/04/03 职场文书
导游词范文之颐和园/重庆/云台山
2019/09/10 职场文书
解决golang在import自己的包报错的问题
2021/04/29 Golang
python使用torch随机初始化参数
2022/03/22 Python