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 相关文章推荐
PHP 日常开发小技巧
Sep 23 PHP
php中使用Imagick实现图像直方图的实现代码
Aug 30 PHP
win7+apache+php+mysql环境配置操作详解
Jun 10 PHP
PHP设计模式之结构模式的深入解析
Jun 13 PHP
php实现图片添加水印功能
Feb 13 PHP
php+mysqli数据库连接的两种方式
Jan 28 PHP
Linux系统中设置多版本PHP共存配合Nginx服务器使用
Dec 21 PHP
php获取数据库中数据的实现方法
Jun 01 PHP
PHP+Ajax实现的博客文章添加类别功能示例
Mar 29 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
Apr 11 PHP
phpcmsv9.0任意文件上传漏洞解析
Oct 20 PHP
详解thinkphp的Auth类认证
May 28 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之面向对象
2013/05/15 PHP
codeigniter显示所有脚本执行时间的方法
2015/03/21 PHP
php微信开发自定义菜单
2016/08/27 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
IE 上下滚动展示模仿Marquee机制
2009/12/20 Javascript
jquery的选择器的使用技巧之如何选择input框
2013/09/22 Javascript
node.js中使用node-schedule实现定时任务实例
2014/06/03 Javascript
在父页面得到zTree已选中的节点的方法
2015/02/12 Javascript
JavaScript中定义函数的三种方法
2015/03/12 Javascript
Bootstrap入门书籍之(三)栅格系统
2016/02/17 Javascript
jQuery中的Deferred和promise 的区别
2016/04/03 Javascript
浅析jQuery事件之on()方法绑定多个选择器,多个事件
2016/04/27 Javascript
归纳下js面向对象的几种常见写法总结
2016/08/24 Javascript
JavaScript中关键字 in 的使用方法详解
2016/10/17 Javascript
nodejs进阶(6)—连接MySQL数据库示例
2017/01/07 NodeJs
AngulaJS路由 ui-router 传参实例
2017/04/28 Javascript
jQuery Ajax自定义分页组件(jquery.loehpagerv1.0)实例详解
2017/05/01 jQuery
JavaScript 事件代理需要注意的地方
2020/09/08 Javascript
pycharm 使用心得(七)一些实用功能介绍
2014/06/06 Python
python写日志封装类实例
2015/06/28 Python
Python使用tkinter库实现文本显示用户输入功能示例
2018/05/30 Python
python取余运算符知识点详解
2019/06/27 Python
详解python 降级到3.6终极解决方案
2020/02/06 Python
matplotlib bar()实现多组数据并列柱状图通用简便创建方法
2021/02/24 Python
css3 实现圆形旋转倒计时
2018/02/24 HTML / CSS
纯CSS3实现鼠标滑过按钮动画第二节
2020/07/16 HTML / CSS
Corelle官方网站:购买康宁餐具
2016/11/02 全球购物
美国眼镜网站:LensCrafters
2020/01/19 全球购物
请解释流与文件有什么不同
2016/07/29 面试题
年终考核评语
2014/01/19 职场文书
师说教学反思
2014/02/07 职场文书
五水共治一句话承诺
2014/05/30 职场文书
课前一分钟演讲稿
2014/08/26 职场文书
缅怀先烈演讲稿
2014/09/03 职场文书
介绍信范文大全
2015/05/07 职场文书
驾驶员管理制度范本
2015/08/06 职场文书