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 23 PHP
php IP转换整形(ip2long)的详解
Jun 06 PHP
php中将数组转成字符串并保存到数据库中的函数代码
Sep 29 PHP
php curl模拟post请求小实例
Nov 13 PHP
php加速器eAccelerator的配置参数、API详解
May 05 PHP
一组PHP加密解密函数分享
Jun 05 PHP
php实现带读写分离功能的MySQL类完整实例
Jul 28 PHP
PHP实现的数独求解问题示例
Apr 18 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
Feb 15 PHP
tp5框架前台无限极导航菜单类实现方法分析
Mar 29 PHP
PHP如何开启Opcache功能提升程序处理效率
Apr 27 PHP
PHP Web表单生成器案例分析
Jun 02 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 中文处理技巧
2010/04/25 PHP
PHP中使用gettext来支持多语言的方法
2011/05/02 PHP
CodeIgniter生成网站sitemap地图的方法
2013/11/13 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
2014/10/30 PHP
thinkPHP中多维数组的遍历方法
2016/01/09 PHP
PHPExcel简单读取excel文件示例
2016/05/26 PHP
js调试工具 Javascript Debug Toolkit 2.0.0版本发布
2008/12/02 Javascript
javascript动态添加样式(行内式/嵌入式/外链式等规则)
2013/06/24 Javascript
javascript实现页面刷新时自动清空表单并选中的方法
2015/07/18 Javascript
jquery对dom节点的操作【推荐】
2016/04/15 Javascript
jQuery mobile在页面加载时添加加载中效果 document.ready 和window.onload执行顺序比较
2016/07/14 Javascript
js无提示关闭浏览器窗口的两种方法分析
2016/11/06 Javascript
JS文件上传神器bootstrap fileinput详解
2021/01/28 Javascript
JavaScript用构造函数如何获取变量的类型名
2016/12/23 Javascript
angular+bootstrap的双向数据绑定实例
2017/03/03 Javascript
利用jQuery+localStorage实现一个简易的计时器示例代码
2017/12/25 jQuery
Vue框架TypeScript装饰器使用指南小结
2019/02/18 Javascript
javascript触发模拟鼠标点击事件
2019/06/26 Javascript
微信小程序 腾讯地图SDK 获取当前地址实现解析
2019/08/12 Javascript
python监控网卡流量并使用graphite绘图的示例
2014/04/27 Python
python开发中module模块用法实例分析
2015/11/12 Python
Python自动化运维和部署项目工具Fabric使用实例
2016/09/18 Python
Python初学时购物车程序练习实例(推荐)
2017/08/08 Python
python批量修改文件夹及其子文件夹下的文件内容
2019/03/15 Python
利用Django模版生成树状结构实例代码
2019/05/19 Python
Django models filter筛选条件详解
2020/03/16 Python
PyInstaller的安装和使用的详细步骤
2020/06/02 Python
基于Python实现简单学生管理系统
2020/07/24 Python
python反爬虫方法的优缺点分析
2020/11/25 Python
土耳其时尚购物网站:Morhipo
2017/09/04 全球购物
博柏利美国官方网站:Burberry美国
2020/11/19 全球购物
如何在发生故障的节点上重新安装 SQL Server
2013/03/14 面试题
事业单位鉴定材料
2014/05/25 职场文书
官僚主义现象查摆问题整改措施
2014/10/04 职场文书
个人欠款协议书范本2014
2014/11/02 职场文书
蜗居观后感
2015/06/11 职场文书