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 相关文章推荐
phpMyAdmin下载、安装和使用入门教程
May 31 PHP
[原创]效率较高的php下读取文本文件的代码
Jul 02 PHP
PHP生成带有雪花背景的验证码
Sep 28 PHP
phplock(php进程锁) v1.0 beta1
Nov 24 PHP
用php或asp创建网页桌面快捷方式的代码
Mar 23 PHP
php 获取全局变量的代码
Apr 21 PHP
使用cookie实现统计访问者登陆次数
Jun 08 PHP
PHP引用符&amp;的用法详细解析
Aug 22 PHP
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
May 05 PHP
浅谈php提交form表单
Jul 01 PHP
微信支付PHP SDK之微信公众号支付代码详解
Dec 09 PHP
php封装好的人民币数值转中文大写类
Dec 20 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
第五节 克隆 [5]
2006/10/09 PHP
yii2实现根据时间搜索的方法
2016/05/25 PHP
php 函数使用可变数量的参数方法
2017/05/02 PHP
总结PHP内存释放以及垃圾回收
2018/03/29 PHP
laravel实现按时间日期进行分组统计方法示例
2019/03/23 PHP
鼠标滑上去后图片放大浮出效果的js代码
2011/05/28 Javascript
使用POST方式弹出窗口的两种方法示例介绍
2014/01/29 Javascript
二叉树的非递归后序遍历算法实例详解
2014/02/07 Javascript
jquery对象和javascript对象即DOM对象相互转换
2014/08/07 Javascript
Javascript+CSS实现影像卷帘效果思路及代码
2014/10/20 Javascript
基于jQuery实现在线选座之高铁版
2015/08/24 Javascript
微信小程序 本地数据读取实例
2017/04/27 Javascript
bootstrap动态添加面包屑(breadcrumb)及其响应事件的方法
2017/05/25 Javascript
浅谈vue项目优化之页面的按需加载(vue+webpack)
2017/12/11 Javascript
详解简单易懂的 ES6 Iterators 指南和示例
2019/09/24 Javascript
vue下的@change事件的实现
2019/10/25 Javascript
小程序实现按下录音松开识别语音
2019/11/22 Javascript
[01:05:24]Ti4 冒泡赛第二天 iG vs NEWBEE 3
2014/07/15 DOTA
python在windows和linux下获得本机本地ip地址方法小结
2015/03/20 Python
Python实现批量更换指定目录下文件扩展名的方法
2016/09/19 Python
Python操作MySQL数据库的方法
2018/06/20 Python
python处理自动化任务之同时批量修改word里面的内容的方法
2019/08/23 Python
Python中的全局变量如何理解
2020/06/04 Python
html5中 media(播放器)的api使用指南
2014/12/26 HTML / CSS
阿联酋网上花店:Ferns N Petals
2018/02/14 全球购物
Shopee印度尼西亚:东南亚与台湾市场最大电商平台
2018/06/17 全球购物
波兰灯具、照明和LED购物网站:Lampy.pl
2019/03/11 全球购物
橄榄树药房:OLIVEDA
2019/09/01 全球购物
澳大利亚领先的亚麻品牌:Bed Threads
2019/12/16 全球购物
某公司Java工程师面试题笔试题
2016/03/27 面试题
机电专业毕业生推荐信
2013/11/10 职场文书
总经理岗位职责范本
2014/02/02 职场文书
新文化运动的口号
2014/06/21 职场文书
自愿离婚协议书范本2016
2016/03/18 职场文书
52条SQL语句教你性能优化
2021/05/25 MySQL
Win11控制面板快捷键是什么?Win11打开控制面板的方法汇总
2022/07/07 数码科技