搜尋
首頁php教程php手册php自定文件保存session的方法

这篇文章主要介绍了php自定文件保存session的方法,详细讲述了session创建与使用的技巧,以及对应的作用范围分析,具有一定的参考借鉴价值,需要的朋友可以参考下

本文实例讲述了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实例代码如下:

复制代码 代码如下:

//定义一个超全局数组
$_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

复制代码 代码如下:

//确定编码格式
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'];
?>
下一页


测试文件:2.php

复制代码 代码如下:

//确定编码格式
header('content-type: text/html; charset=utf-8');
include("session-file.php");
//测试函数:
//开启会话
session_file_start();
echo $_session['username'];
?>

希望本文所述对大家的PHP程序设计有所帮助。

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。