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 相关文章推荐
linux iconv方法的使用
Oct 01 PHP
php.ini-dist 和 php.ini-recommended 的区别介绍(方便开发与安全的朋友)
Jul 01 PHP
PHP面向对象——访问修饰符介绍
Nov 08 PHP
php生成N个不重复的随机数实例
Nov 12 PHP
php数组中删除元素之重新索引的方法
Sep 16 PHP
php更新mysql后获取改变行数的方法
Dec 25 PHP
PHP中如何判断exec函数执行成功?
Aug 04 PHP
php文件上传、下载和删除示例
Aug 28 PHP
PHP策略模式定义与用法示例
Jul 27 PHP
PHP切割汉字的常用方法实例总结
Apr 27 PHP
php弹出提示框的是实例写法
Sep 26 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
Nov 25 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
PHP5在Apache下的两种模式的安装
2006/09/05 PHP
消息持续发送的完整例子
2006/10/09 PHP
解析使用substr截取UTF-8中文字符串出现乱码的问题
2013/06/20 PHP
PHP中的密码加密的解决方案总结
2016/10/26 PHP
PHP将字符串首字母大小写转换的实例
2017/01/21 PHP
JSChart轻量级图形报表工具(内置函数中文参考)
2010/10/11 Javascript
javascript面向对象之二 命名空间
2011/02/08 Javascript
jQuery页面加载初始化常用的三种方法
2014/06/04 Javascript
对JavaScript的全文搜索实现相关度评分的功能的方法
2015/06/24 Javascript
Bootstrap table两种分页示例
2016/12/23 Javascript
BootStrap Datetimepicker 汉化的实现代码
2017/02/10 Javascript
React Native实现进度条弹框的示例代码
2017/07/17 Javascript
ES5 模拟 ES6 的 Symbol 实现私有成员功能示例
2020/05/06 Javascript
vue 实现一个简单的全局调用弹窗案例
2020/09/10 Javascript
vue中activated的用法
2021/01/03 Vue.js
python解析xml文件操作实例
2014/10/05 Python
学习Python3 Dlib19.7进行人脸面部识别
2018/01/24 Python
python实现坦克大战游戏 附详细注释
2020/03/27 Python
Python读取stdin方法实例
2019/05/24 Python
Python 通过微信控制实现app定位发送到个人服务器再转发微信服务器接收位置信息
2019/08/05 Python
python对Excel按条件进行内容补充(推荐)
2019/11/24 Python
python中return的返回和执行实例
2019/12/24 Python
python复合条件下的字典排序
2020/12/18 Python
美国内衣品牌:Leonisa
2016/08/14 全球购物
澳大利亚墨水站Ink Station:墨水和碳粉打印机墨盒
2019/03/24 全球购物
90后毕业生的求职信范文
2013/09/21 职场文书
水果连锁超市创业计划书
2014/01/24 职场文书
法学专业自我鉴定
2014/02/05 职场文书
2014年公务员思想汇报范文:全心全意为人民服务
2014/03/06 职场文书
讲座开场白台词和结束语
2015/05/29 职场文书
如何写好竞聘报告
2019/04/03 职场文书
Go语言中break label与goto label的区别
2021/04/28 Golang
python基于机器学习预测股票交易信号
2021/05/25 Python
python使用PySimpleGUI设置进度条及控件使用
2021/06/10 Python
详解Java线程池是如何重复利用空闲线程的
2021/06/26 Java/Android
Canvas如何做个雪花屏版404的实现
2021/09/25 HTML / CSS