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 empty,isset,is_null判断比较(差异与异同)
Oct 19 PHP
9个PHP开发常用功能函数小结
Jul 15 PHP
解析PHP处理换行符的问题 \r\n
Jun 13 PHP
php实现建立多层级目录的方法
Jul 19 PHP
php+mysql实现用户注册登陆的方法
Jan 03 PHP
php商品对比功能代码分享
Sep 24 PHP
PHP使用内置函数生成图片的方法详解
May 09 PHP
PHP简单字符串过滤方法示例
Sep 04 PHP
浅谈PHP定义命令空间的几个注意点(推荐)
Oct 29 PHP
PHP 验证身份证是否合法的函数
Feb 09 PHP
PHP中CheckBox多选框上传失败的代码写法
Feb 13 PHP
Thinkphp整合阿里云OSS图片上传实例代码
Apr 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
Smarty模板学习笔记之Smarty简介
2014/05/20 PHP
使用php从身份证号中获取一系列线索(星座、生肖、生日等)
2016/05/11 PHP
详解PHP函数 strip_tags 处理字符串缺陷bug
2017/06/11 PHP
JavaScript 替换Html标签实现代码
2009/10/14 Javascript
JS关键字变色实现思路及代码
2013/02/21 Javascript
BootStrap和jQuery相结合实现可编辑表格
2016/04/21 Javascript
JQuery和HTML5 Canvas实现弹幕效果
2017/01/04 Javascript
在vue-cli脚手架中配置一个vue-router前端路由
2017/07/03 Javascript
微信小程序基于本地缓存实现点赞功能的方法
2017/12/18 Javascript
jQuery+css last-child实现选择最后一个子元素操作示例
2018/12/10 jQuery
JavaScript常用内置对象用法分析
2019/07/09 Javascript
vue el-tree 默认展开第一个节点的实现代码
2020/05/15 Javascript
Python time模块详解(常用函数实例讲解,非常好)
2014/04/24 Python
跟老齐学Python之画圈还不简单吗?
2014/09/20 Python
Python3 利用requests 库进行post携带账号密码请求数据的方法
2018/10/26 Python
Python交互式图形编程的实现
2019/07/25 Python
python检测服务器端口代码实例
2019/08/31 Python
Python实现病毒仿真器的方法示例(附demo)
2020/02/19 Python
Python图像处理库PIL的ImageDraw模块介绍详解
2020/02/26 Python
python中slice参数过长的处理方法及实例
2020/12/15 Python
纯CSS3实现带动画效果导航菜单无需js
2013/09/27 HTML / CSS
美国购买肉、鸭、家禽、鹅肝和熟食网站:D’Artagnan
2018/11/13 全球购物
递归计算如下递归函数的值(斐波拉契)
2012/02/04 面试题
新闻专业大学生找工作的自我评价
2013/10/30 职场文书
基层干部2014全国两会学习心得体会
2014/03/10 职场文书
幼儿园教师的考核评语
2014/04/18 职场文书
艺术教育实施方案
2014/05/03 职场文书
小组口号大全
2014/06/09 职场文书
反对四风问题自我剖析材料
2014/09/29 职场文书
师德师风建设整改措施思想汇报
2014/10/11 职场文书
幼儿教师师德师风自我评价
2015/03/05 职场文书
地震捐款简报
2015/07/21 职场文书
演讲稿:​快乐,从不抱怨开始!
2019/04/02 职场文书
Nginx进程调度问题详解
2021/09/25 Servers
使用python创建股票的时间序列可视化分析
2022/03/03 Python
人物搭配车车超萌联名预备中 【咒术迴战】 ⨯ 【天竺鼠车车】 展开合作
2022/04/11 日漫