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 cookie 登录验证示例代码
Mar 16 PHP
PHP项目开发中最常用的自定义函数整理
Dec 02 PHP
PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析
Mar 28 PHP
smarty模板引擎中内建函数if、elseif和else的使用方法
Jan 22 PHP
在CentOS上搭建LAMP+vsftpd环境的简单指南
Aug 01 PHP
php实现的递归提成方案实例
Nov 14 PHP
php基于dom实现读取图书xml格式数据的方法
Feb 03 PHP
thinkPHP5.0框架简单配置作用域的方法
Mar 17 PHP
PHP删除二维数组中相同元素及数组重复值的方法示例
May 05 PHP
php+jQuery实现的三级导航栏下拉菜单显示效果
Aug 10 PHP
统计PHP目录中的文件数方法
Mar 05 PHP
浅谈如何提高PHP代码质量之端到端集成测试
May 28 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编程函数安全篇
2013/01/08 PHP
php Hex RGB颜色值互换的使用
2013/05/10 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
php探针不显示内存解决方法
2019/09/17 PHP
javascript获得网页窗口实际大小的示例代码
2013/09/21 Javascript
jQuery中removeClass()方法用法实例
2015/01/05 Javascript
javascript制作的简单注册模块表单验证
2015/04/13 Javascript
深入理解JavaScript编程中的同步与异步机制
2015/06/24 Javascript
javascript的几种写法总结
2016/09/30 Javascript
浅谈javascript中的 “ &amp;&amp; ” 和 “ || ”
2017/02/02 Javascript
详解angularJS动态生成的页面中ng-click无效解决办法
2017/06/19 Javascript
vue组件学习教程
2017/09/09 Javascript
vue.js语法及常用指令
2017/10/29 Javascript
vue-cli webpack2项目打包优化分享
2018/02/07 Javascript
关于JavaScript中高阶函数的魅力详解
2018/09/07 Javascript
vue在index.html中引入静态文件不生效问题及解决方法
2019/04/29 Javascript
JavaScript如何处理移动端拍摄图片旋转问题
2019/11/16 Javascript
JS插件amCharts实现绘制柱形图默认显示数值功能示例
2019/11/26 Javascript
vue实现匀速轮播效果
2020/06/29 Javascript
在vue中封装方法以及多处引用该方法详解
2020/08/14 Javascript
详细探究Python中的字典容器
2015/04/14 Python
tensorflow实现softma识别MNIST
2018/03/12 Python
python简易实现任意位数的水仙花实例
2018/11/13 Python
六行python代码的爱心曲线详解
2019/05/17 Python
pyinstaller打包多个py文件和去除cmd黑框的方法
2019/06/21 Python
Python SSL证书验证问题解决方案
2020/01/13 Python
1688平价精选商城:阿里集团旗下,工厂出厂价格直销
2017/04/24 全球购物
Carolina工作鞋官网:Carolina Footwear
2019/03/14 全球购物
Internal修饰符有什么含义
2013/07/10 面试题
行政总监岗位职责
2013/12/05 职场文书
2014年应届大学生毕业自我鉴定
2014/01/31 职场文书
家电业务员岗位职责
2014/03/10 职场文书
分家协议书
2014/04/21 职场文书
自主招生自荐信范文
2015/03/04 职场文书
2019年“红色之旅”心得体会1000字(3篇)
2019/09/27 职场文书
MySQL外键约束(FOREIGN KEY)案例讲解
2021/08/23 MySQL