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 相关文章推荐
基于mysql的bbs设计(三)
Oct 09 PHP
通过具体程序来理解PHP里面的抽象类
Jan 28 PHP
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
Nov 18 PHP
php上传大文件设置方法
Apr 14 PHP
PHP+Jquery与ajax相结合实现下拉淡出瀑布流效果【无需插件】
May 06 PHP
PHP微信开发之文本自动回复
Jun 23 PHP
php+ajax简单实现全选删除的方法
Dec 06 PHP
php file_get_contents取文件中数组元素的方法
Apr 01 PHP
wordpress自定义标签云与随机获取标签的方法详解
Mar 22 PHP
用php定义一个数组最简单的方法
Oct 04 PHP
php实现将数组或对象写入到文件的方法小结【三种方法】
Apr 22 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
Oct 30 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 各种排序算法实现代码
2009/08/20 PHP
php站内搜索并高亮显示关键字的实现代码
2011/12/29 PHP
解析php中mysql_connect与mysql_pconncet的区别详解
2013/05/15 PHP
php对csv文件的读取,写入,输出下载操作详解
2013/08/10 PHP
PHPExcel中文帮助手册|PHPExcel使用方法(分享)
2017/06/09 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
PHP查找一列有序数组是否包含某值的方法
2020/02/07 PHP
Thinkphp框架+Layui实现图片/文件上传功能分析
2020/02/07 PHP
JavaScript 异步调用框架 (Part 2 - 用例设计)
2009/08/03 Javascript
jquery 元素相对定位代码
2010/10/15 Javascript
JSON+JavaScript处理JSON的简单例子
2013/03/20 Javascript
jquery.fastLiveFilter.js实现输入自动过滤的方法
2015/08/11 Javascript
JS针对浏览器窗口关闭事件的监听方法集锦
2016/06/24 Javascript
JS 动态判断PC和手机浏览器实现代码
2016/09/21 Javascript
创建Vue项目以及引入Iview的方法示例
2018/12/03 Javascript
vue component 中引入less文件报错 Module build failed
2019/04/17 Javascript
python实现列表的排序方法分享
2019/07/01 Python
pycharm修改文件的默认打开方式的步骤
2019/07/29 Python
python中安装django模块的方法
2020/03/12 Python
pycharm sciview的图片另存为操作
2020/06/01 Python
pycharm 如何取消连按两下shift出现的全局搜索
2021/01/15 Python
Manuka Doctor美国官网:麦卢卡蜂蜜和蜂毒护肤
2016/12/25 全球购物
水果花束:Fruit Bouquets
2017/12/20 全球购物
在Ajax应用中信息是如何在浏览器和服务器之间传递的
2016/05/31 面试题
2014年小学生教师节演讲稿范文
2014/09/10 职场文书
党的群众路线教育实践活动个人整改措施
2014/10/27 职场文书
依法行政工作汇报
2014/10/28 职场文书
幼儿园教师节活动总结
2015/03/23 职场文书
2015年学生会工作总结范文
2015/03/31 职场文书
新闻稿怎么写
2015/07/18 职场文书
python中pandas.read_csv()函数的深入讲解
2021/03/29 Python
用Python的绘图库(matplotlib)绘制小波能量谱
2021/04/17 Python
Win11查看设备管理器
2022/04/19 数码科技
Python尝试实现蒙特卡罗模拟期权定价
2022/04/21 Python
css3 文字断裂效果
2022/04/22 HTML / CSS