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 相关文章推荐
浅谈Windows下 PHP4.0与oracle 8的连接设置
Oct 09 PHP
php环境配置 php5 MySQL5 apache2 phpmyadmin安装与配置图文教程
Mar 16 PHP
优化php效率,提高php性能的一些方法
Mar 24 PHP
php学习之数据类型之间的转换代码
May 29 PHP
php中将网址转换为超链接的函数
Sep 02 PHP
基于Snoopy的PHP近似完美获取网站编码的代码
Oct 23 PHP
表格展示无限级分类(PHP版)
Aug 21 PHP
php实现通过ftp上传文件
Jun 19 PHP
PHP  Yii清理缓存的实现方法
Nov 10 PHP
PHP面向对象程序设计之类与反射API详解
Dec 02 PHP
解决laravel上传图片之后,目录有图片,但是访问不到(404)的问题
Oct 14 PHP
TP5框架实现上传多张图片的方法分析
Mar 29 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的魔术常量__METHOD__简介
2014/07/08 PHP
php rmdir使用递归函数删除非空目录实例详解
2016/10/20 PHP
PHP使用PDO操作sqlite数据库应用案例
2019/03/07 PHP
YII框架http缓存操作示例
2019/04/29 PHP
php实现图片压缩处理
2020/09/09 PHP
js弹出模式对话框,并接收回传值的方法
2013/03/12 Javascript
Js参数值中含有单引号或双引号问题的解决方法
2013/11/06 Javascript
使用js实现数据格式化
2014/12/03 Javascript
js插件YprogressBar实现漂亮的进度条效果
2015/04/20 Javascript
JavaScript是如何实现继承的(六种方式)
2016/03/31 Javascript
jQuery获取与设置iframe高度的方法
2016/08/01 Javascript
webpack+vue.js实现组件化详解
2016/10/12 Javascript
可输入文字查找ajax下拉框控件 ComBox的实现方法
2016/10/25 Javascript
jQuery设置Easyui校验规则(推荐)
2016/11/21 Javascript
javascript中this关键字详解
2016/12/12 Javascript
canvas实现流星雨的背景效果
2017/01/13 Javascript
js自制图片放大镜功能
2017/01/24 Javascript
js使用ajax传值给后台,后台返回字符串处理方法
2018/08/08 Javascript
vue里面v-bind和Props 利用props绑定动态数据的方法
2018/08/27 Javascript
vue项目引入Iconfont图标库的教程图解
2018/10/24 Javascript
JS中自定义事件的使用与触发操作实例分析
2019/11/01 Javascript
微信小程序地图实现展示线路
2020/07/29 Javascript
[19:14]DOTA2 HEROS教学视频教你分分钟做大人-维萨吉
2014/06/24 DOTA
python 字符串格式化代码
2013/03/17 Python
简单谈谈Python中的闭包
2016/11/30 Python
给Django Admin添加验证码和多次登录尝试限制的实现
2020/07/26 Python
css3遮罩层镂空效果的多种实现方法
2020/05/11 HTML / CSS
亚马逊墨西哥站:Amazon.com.mx
2018/08/26 全球购物
美国职棒大联盟的官方手套、球和头盔:Rawlings
2020/02/15 全球购物
2014年公司迎新年活动方案
2014/02/24 职场文书
初二学习计划书范文
2014/04/27 职场文书
超市七夕促销活动方案
2014/08/28 职场文书
留学推荐信怎么写
2015/03/26 职场文书
小型婚礼主持词
2015/06/30 职场文书
学术会议开幕词
2016/03/03 职场文书
房屋买卖定金协议书
2016/03/21 职场文书