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 相关文章推荐
在IIS上安装PHP4.0正式版
Oct 09 PHP
php in_array 函数使用说明与in_array需要注意的地方说明
Apr 13 PHP
《PHP编程最快明白》第四讲:日期、表单接收、session、cookie
Nov 01 PHP
php修改指定文件后缀的方法
Sep 11 PHP
php实现zip文件解压操作
Nov 03 PHP
PHP编程基本语法快速入门手册
Jan 07 PHP
基于PHP实现商品成交时发送短信功能
May 11 PHP
PHP从数组中删除元素的四种方法实例
May 12 PHP
PHP 7.0新增加的特性介绍
Jun 08 PHP
PHP实现权限管理功能示例
Sep 22 PHP
thinkPHP框架动态配置用法实例分析
Jun 14 PHP
laravel5实现微信第三方登录功能
Dec 06 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 八种基本的数据类型小结
2011/06/01 PHP
简单的cookie计数器实现源码
2013/06/07 PHP
用php来限制每个ip每天浏览页面数量的实现思路
2015/02/24 PHP
WordPress用户登录框密码的隐藏与部分显示技巧
2015/12/31 PHP
yii2.0实现pathinfo的形式访问的配置方法
2016/04/06 PHP
在模板页面的js使用办法
2010/04/01 Javascript
XENON基于JSON变种
2010/07/27 Javascript
JavaScript也谈内存优化
2014/06/06 Javascript
JavaScript bold方法入门实例(把指定文字显示为粗体)
2014/10/17 Javascript
jquery实现可拖拽弹出层特效
2015/01/04 Javascript
浅谈jQuery构造函数分析
2015/05/11 Javascript
javascript中return,return true,return false三者的用法及区别
2015/11/17 Javascript
基于jquery实现鼠标左右拖动滑块滑动附源码下载
2015/12/23 Javascript
一款简单的jQuery图片标注效果附源码下载
2016/03/22 Javascript
详解jQuery选择器
2016/12/21 Javascript
Angular通过angular-cli来搭建web前端项目的方法
2017/07/27 Javascript
vuex实现登录状态的存储,未登录状态不允许浏览的方法
2018/03/09 Javascript
JavaScript 实现下雪特效的示例代码
2020/09/09 Javascript
python实现分析apache和nginx日志文件并输出访客ip列表的方法
2015/04/04 Python
Python基于property实现类的特性操作示例
2018/06/15 Python
获取django框架orm query执行的sql语句实现方法分析
2019/06/20 Python
python 实现创建文件夹和创建日志文件的方法
2019/07/07 Python
Django 请求Request的具体使用方法
2019/11/11 Python
使用卷积神经网络(CNN)做人脸识别的示例代码
2020/03/27 Python
Django haystack实现全文搜索代码示例
2020/11/28 Python
网页中的电话号码如何实现一键直呼效果_附示例
2016/03/15 HTML / CSS
利用简洁的图片预加载组件提升html5移动页面的用户体验
2016/03/11 HTML / CSS
MaBelle玛贝尔香港官网:香港钻饰连锁店
2019/09/09 全球购物
沃尔玛旗下墨西哥超市:Bodega Aurrera
2020/11/13 全球购物
《冬阳童年骆驼队》教学反思
2014/04/15 职场文书
社会实践评语
2014/04/28 职场文书
副总经理岗位职责
2015/02/02 职场文书
Go语言使用select{}阻塞main函数介绍
2021/04/25 Golang
python spilt()分隔字符串的实现示例
2021/05/21 Python
搭建Yolov5服务器
2022/04/30 Servers
Python find()、rfind()方法及作用
2022/12/24 Python