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
phpMyAdmin 安装教程全攻略
Mar 19 PHP
php 表单验证实现代码
Mar 10 PHP
PHP编码转换函数 自动转换字符集支持数组转换
Dec 16 PHP
php生成zip压缩文件的方法详解
Jun 09 PHP
解析php通过cookies获取远程网页的指定代码
Jun 25 PHP
PHP 5.3和PHP 5.4出现FastCGI Error解决方法
Feb 12 PHP
php操作MongoDB类实例
Jun 17 PHP
浅谈PHP中的
Apr 23 PHP
PHP判断表达式中括号是否匹配的简单实例
Oct 22 PHP
thinkPHP中钩子的使用方法实例分析
Nov 16 PHP
laravel框架邮箱认证实现方法详解
Nov 22 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支持页面回退的两种方法[转]
2007/02/14 PHP
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
2013/04/13 PHP
PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...
2016/02/14 PHP
PHP中SERIALIZE和JSON的序列化与反序列化操作区别分析
2016/10/11 PHP
YII框架中使用memcache的方法详解
2017/08/02 PHP
PHP封装的非对称加密RSA算法示例
2018/05/28 PHP
JQuery Ajax通过Handler访问外部XML数据的代码
2010/06/01 Javascript
JavaScript之编码规范 推荐
2012/05/23 Javascript
jQuery移除元素自动解绑事件实现思路及代码
2014/05/31 Javascript
前端必备神器 Snap.svg 弹动效果
2014/11/10 Javascript
JavaScript数组常用操作技巧汇总
2014/11/17 Javascript
js实现图片点击左右轮播
2015/07/08 Javascript
Jquery调用iframe父页面中的元素及方法
2016/08/23 Javascript
使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能
2017/03/15 Javascript
详解开源的JavaScript插件化框架MinimaJS
2017/10/26 Javascript
在Node.js下运用MQTT协议实现即时通讯及离线推送的方法
2019/01/24 Javascript
一百行JS代码实现一个校验工具
2019/04/30 Javascript
vue 中 命名视图的用法实例详解
2019/08/14 Javascript
node.js中npm包管理工具用法分析
2020/02/14 Javascript
JavaScript中遍历的十种方法总结
2020/12/15 Javascript
vue el-upload上传文件的示例代码
2020/12/21 Vue.js
[19:59]2014DOTA2国际邀请赛 IG战队纪录片
2014/08/07 DOTA
Python中的对象,方法,类,实例,函数用法分析
2015/01/15 Python
Python书单 不将就
2017/07/11 Python
python 日志增量抓取实现方法
2018/04/28 Python
PyTorch上搭建简单神经网络实现回归和分类的示例
2018/04/28 Python
python爬虫 猫眼电影和电影天堂数据csv和mysql存储过程解析
2019/09/05 Python
Pytorch 解决自定义子Module .cuda() tensor失败的问题
2020/06/23 Python
python 操作excel表格的方法
2020/12/05 Python
FORZIERI福喜利中国官网:奢侈品购物梦工厂
2019/05/03 全球购物
数学系毕业生的自我评价
2014/01/10 职场文书
护理专科毕业自荐信范文
2014/04/21 职场文书
2014年医院科室工作总结
2014/12/20 职场文书
工程部岗位职责
2015/02/10 职场文书
使用 MybatisPlus 连接 SqlServer 数据库解决 OFFSET 分页问题
2022/04/22 SQL Server
Nginx限流和黑名单配置
2022/05/20 Servers