php自定文件保存session的方法


Posted in PHP onDecember 10, 2014

本文实例讲述了php自定文件保存session的方法。分享给大家供大家参考。具体实现方法如下:

session.inc.php文件:定义session的文件存储,session解决方案,就是要提供在php脚本中定义全局变量的方法,使得这个全局变量在同一个session中对于所有的php脚本都有效,我们都知道,session不是一个简单的时间概念,一个session中还包括了特定的用户和服务器,因此更详细地讲,在一个session定义的全局变量的作用范围,是指这个session所对应的用户所访问的所有php,例如a用户通过session定义了一个全局变量$user="wind"中,而b用户通过session定义的全局变量$user="jane",那么在a用户所访问的php脚本中,$user的值就是wind.

php如何创建session

开始介绍如何创建 session,非常简单,启动 session 会话,并创建一个 $admin 变量:

启动 session:

session_start();

声明一个名为 admin 的变量,并赋空值:$_session["admin"] = null;

如果你使用了 seesion,或者该 php 文件要调用 session 变量,那么就必须在调用 session 之前启动它,使用 session_start() 函数,其它都不需要你设置了,php 自动完成 session 文件的创建,执行完这个程序后,我们可以到系统临时文件夹找到这个 session 文件,一般文件名形如:sess_4c83638b3b0dbf65583181c2f89168ec,后面是 32 位编码后的随机字符串,用编辑器打开它,看一下它的内容:admin|n;,PHP实例代码如下:

<?php 

//定义一个超全局数组 

$_session = array(); 

//定义文件句柄 

$fp = null; 

 

//用户自定义的开启session函数 

function session_file_start() { 

 

//1. 首先判断浏览器有没有发送cookie值 

if (isset($_cookie['fileid'])) { 

 

//2. 接收cookie值 

$filename = $_cookie['fileid']; 

 

//3. 打开文件,用于读写 

if (file_exists($filename)) { 

$globals['fp'] = fopen($filename, 'r+'); 

} else { 

$globals['fp'] = fopen($filename, 'w+'); 

} 

} else { 

//2. 设置一个文件,并把该文件名放到cookie中 

$filename = date('ymdhis'); 

setcookie('fileid', $filename, time()+60*60*24); 

 

//3. 打开文件,用于读写 

$globals['fp'] = fopen($filename, 'w+'); 

 

} //end of if-else 

 

//4. 把文件中的数据存储到超全局数组$_session中 

while (!feof($globals['fp'])) { 

//读取文件中的一行 

$buffer = fgets($globals['fp']); 

//处理所读取的这一行 

$tmparr = explode('=', trim($buffer, 'rn')); 

 

//添加到session数组中 

if (count($tmparr) == 2) { 

$globals['_session'][$tmparr[0]] = $tmparr[1]; 

} 

} //end of while 

 

} //end of session_file_start() 

 

//注册会话变量的函数 

function session_file_register($key, $val) { 

 

//设定session变量 

$globals['_session'][$key] = $val; 

 

//把该变量放到文件中 

fseek($globals['fp'], 0, seek_end); 

fwrite($globals['fp'], "$key=$valrn"); 

} //end of session_file_register() 

//结束会话变量 

function session_file_destroy() { 

//1. 关闭文件指针 

fclose($globals['fp']); 

$fp = null; 

//2. 设置session数组为空 

$globals['_session'] = array(); 

} //end of session_file_destroy()

测试代码文件:1.php
<?php 

//确定编码格式 

header('content-type: text/html; charset=utf-8'); 

include("session-file.php"); 

//测试函数: 

//开启会话 

session_file_start(); 

//注册会话变量 

$key = 'username'; 

$val = 'lsl'; 

session_file_register($key, $val); 

session_file_register('username', 'lisa'); 

//打印session数组 

echo $_session['username']; 

?> 

<a href="2.php">下一页</a>

测试文件:2.php
<?php 

//确定编码格式 

header('content-type: text/html; charset=utf-8'); 

include("session-file.php"); 

//测试函数: 

//开启会话 

session_file_start(); 

echo $_session['username']; 

?>

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP生成静态页
Nov 25 PHP
php+mysql写的简单留言本实例代码
Jul 25 PHP
php中的四舍五入函数代码(floor函数、ceil函数、round与intval)
Jul 14 PHP
php向js函数传参的几种方法
Aug 10 PHP
php通过rmdir删除目录的简单用法
Mar 18 PHP
详解WordPress开发中wp_title()函数的用法
Jan 07 PHP
PHP Smarty模版简单使用方法
Mar 30 PHP
ThinkPHP连接Oracle数据库
Apr 22 PHP
PHP中empty,isset,is_null用法和区别
Feb 19 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
Mar 23 PHP
详解PHP版本兼容之openssl调用参数
Jul 25 PHP
解决thinkPHP 5 nginx 部署时,只跳转首页的问题
Oct 16 PHP
php通过session防url攻击方法
Dec 10 #PHP
php利用cookies实现购物车的方法
Dec 10 #PHP
php针对cookie操作的队列操作类实例
Dec 10 #PHP
php利用cookie实现自动登录的方法
Dec 10 #PHP
PHP使用header()输出图片缓存实例
Dec 09 #PHP
PHP实现服务器状态监控的方法
Dec 09 #PHP
PHP里8个鲜为人知的安全函数分析
Dec 09 #PHP
You might like
PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
2011/12/05 PHP
初品cakephp 入门基础
2012/02/16 PHP
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
一段利用WSH获取登录时间的jscript代码
2008/05/11 Javascript
Eval and new funciton not the same thing
2012/12/27 Javascript
Javascript实现重力弹跳拖拽运动效果示例
2013/06/28 Javascript
JavaScript中的eval()函数详解
2013/08/22 Javascript
JavaScript中的类与实例实现方法
2015/01/23 Javascript
实践中学习AngularJS表单
2016/03/21 Javascript
Angularjs中UI Router的使用方法
2016/05/14 Javascript
BootstrapValidator实现注册校验和登录错误提示效果
2017/03/10 Javascript
微信小程序 弹框和模态框实现代码
2017/03/10 Javascript
Vue.js如何优雅的进行form validation
2017/04/07 Javascript
深入解析nodejs HTTP服务
2017/07/25 NodeJs
Vue 进入/离开动画效果
2017/12/26 Javascript
JavaScript展开操作符(Spread operator)详解
2019/07/20 Javascript
JavaScript如何借用构造函数继承
2019/11/06 Javascript
js实现数据导出为EXCEL(支持大量数据导出)
2020/03/31 Javascript
vue集成openlayers加载geojson并实现点击弹窗教程
2020/09/24 Javascript
详解Vue.js3.0 组件是如何渲染为DOM的
2020/11/10 Javascript
[47:12]TFT vs Secret Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
[01:51]开启你的城市传奇 完美世界城市挑战赛开始报名
2018/10/09 DOTA
Python计算两个日期相差天数的方法示例
2017/05/23 Python
Python递归实现汉诺塔算法示例
2018/03/19 Python
Python中logging.NullHandler 的使用教程
2018/11/29 Python
python实现二维数组的对角线遍历
2019/03/02 Python
python列表,字典,元组简单用法示例
2019/07/11 Python
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
香港士多网上超级市场:Ztore
2021/01/09 全球购物
毕业生多媒体设计求职信
2013/10/12 职场文书
4s店市场专员岗位职责
2014/04/09 职场文书
小学生作文评语大全
2014/04/21 职场文书
学生会竞选演讲稿学习部
2014/08/25 职场文书
教师节活动总结
2014/08/29 职场文书
乡镇法制宣传日活动总结
2015/05/05 职场文书
入党转正介绍人意见
2015/06/03 职场文书