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 相关文章推荐
我的论坛源代码(十)
Oct 09 PHP
php中的实现trim函数代码
Mar 19 PHP
PHP通用检测函数集合
Feb 08 PHP
PHP第一季视频教程(李炎恢+php100 不断更新)
May 29 PHP
phpmyadmin安装时提示:Warning: require_once(./libraries/common.inc.php)错误解决办法
Aug 18 PHP
php操作mysql数据库的基本类代码
Feb 25 PHP
非常实用的PHP常用函数汇总
Dec 17 PHP
php+ajax实现无刷新分页
Nov 18 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
Nov 27 PHP
php实现数据库的增删改查
Feb 26 PHP
PHP如何将图片文件上传到另外一台服务器上
Aug 26 PHP
laravel-admin的多级联动方法
Sep 30 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上传图片进行等比缩放可增加水印功能
2014/01/13 PHP
带密匙的php加密解密示例分享
2014/01/29 PHP
19个Android常用工具类汇总
2014/12/30 PHP
memcache一致性hash的php实现方法
2015/03/05 PHP
CI框架文件上传类及图像处理类用法分析
2016/05/18 PHP
CI框架扩展系统核心类的方法分析
2016/05/23 PHP
php UNIX时间戳用法详解
2017/02/16 PHP
解决laravel 5.1报错:No supported encrypter found的办法
2017/06/07 PHP
laravel5实现微信第三方登录功能
2018/12/06 PHP
js取值中form.all和不加all的区别介绍
2014/01/20 Javascript
JavaScript验证图片类型(扩展名)的函数分享
2014/05/05 Javascript
深入理解JavaScript系列(35):设计模式之迭代器模式详解
2015/03/03 Javascript
详谈javascript异步编程
2016/02/21 Javascript
jQuery ajaxForm()的应用
2016/10/14 Javascript
jquery表单验证实例仿Toast提示效果
2017/03/03 Javascript
Bootstrap Tree View简单而优雅的树结构组件实例解析
2017/06/15 Javascript
js实现省市级联效果分享
2017/08/10 Javascript
JS+WCF实现进度条实时监测数据加载量的方法详解
2017/12/19 Javascript
JS中Object对象的原型概念基础
2018/01/29 Javascript
实例详解Node.js 函数
2018/06/10 Javascript
JS 自执行函数原理及用法
2019/08/05 Javascript
Vue axios与Go Frame后端框架的Options请求跨域问题详解
2020/03/03 Javascript
[56:41]iG vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/17 DOTA
Python中集合类型(set)学习小结
2015/01/28 Python
Python构造函数及解构函数介绍
2015/02/26 Python
基于Python 的进程管理工具supervisor使用指南
2016/09/18 Python
django框架模板中定义变量(set variable in django template)的方法分析
2019/06/24 Python
解决pycharm remote deployment 配置的问题
2019/06/27 Python
使用APScheduler3.0.1 实现定时任务的方法
2019/07/22 Python
python中的数组赋值与拷贝的区别详解
2019/11/26 Python
pytorch 实现查看网络中的参数
2020/01/06 Python
美国最大的袜子制造商和零售商:Renfro Socks
2017/09/03 全球购物
室内设计自我鉴定
2013/10/15 职场文书
高中生评语大全
2014/04/25 职场文书
农村党员学习党的群众路线教育实践活动心得体会
2014/11/04 职场文书
北京故宫的导游词
2015/01/31 职场文书