当前位置:首页 > 生活百科

php开启session代码(讲述php设置session有效期)

栏目:生活百科日期:2025-03-26浏览:0

Session 的工作机制

客户端第一次访问某服务器,为每个访问者创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,亦或通过 URL 进行传导。

sessionID的生产算法原理如下:

hash_func = md5 / sha1 #可由php.ini配置 sessionID = hash_func(客户端IP + 当前时间(秒)+ 当前时间(微妙)+ PHP自带的随机数生产器)

hash_func(*)中的数据采样值的内容分析,多个用户在同一台服务器时所生产的sessionID重复的概率极低(至少为百万份之一)。

黑客如果要猜出某一用户的sessionID,则他也必须知道“客户端IP、当前时间(秒、微妙)、随机数”等数据方可模拟。

php.ini配置如下:

; Select a hash function for use in generating session ids.; Possible Values; 0 (MD5 128 bits); 1 (SHA-1 160 bits); This option may also be set to the name of any hash function supported by; the hash extension. A list of available hashes is returned by the hash_algos(); function.; http://php.net/session.hash-functionsession.hash_function=0

PHP session工作原理

session 技术相当于Cookie技术的升级版,Cookie的工作机制是将信息记录在客户端,而Session技术是将信息存放在服务器端,服务器存储信息的方式有很多,可以是文件、数据库和内存等,这里以文件的存储方式介绍session的工作步骤。

(1)客户端第一次访问某服务器。
(2)服务器通过Cookie发送sessionID给客户端,并在服务器建立一个与sessionID同名的文件用于存储信息,而sessionID不能重复,即不同的客户端的sessionID是不同的。
(3)客户端再次访问服务器时会携带服务器发送给客户端的sessionID。
(4)服务器根据客户端发送的sessionID查找对应的文件,读取文件内容。

通过上面的步骤可以看出,session的工作依赖cookie的工作,当然不用Cookie也可以实现sessionID的传递,如URL,但是用cookie最方便。

PHP本身的session是如何工作的呢

首先,在需要共享客户端信息的文件中通过session_start()函数开启session, 然后就可以向$_SESSION全局数组中存入或读取数据,而$_SESSION数组与其他数组不同的是,当向该数组中添加数据时,PHP还会将其中的数据系列化写入session文件中,每次开启session时,PHP会将session文件中的数据读取到该全局数组中,实现数据共享的功能。

php_cli模式通过session_id()使用session

可以通过它来获取当前会话的PHPSESSID,也可以通过它来设置当前的会话PHPSESSID。 php_cli模式下可以通过设置这个,达到使用session的目的,非常方便。

例如:

&<?php// session_id('vingbrv8m64asth0nhplu9gmb7');session_start();$_SESSION[md5(rand(100,999))] = rand(100,999);var_dump($_SESSION);

下面看看一个实际例子,助你加强对session的认识

//SESSION初始化的时候调用function open($save_path, $session_name){ global $sess_save_path; $sess_save_path = $save_path; return(true);}//关闭的时候调用function close(){ return(true);}function read($id){ global $sess_save_path; $sess_file = "$sess_save_path/sess_$id"; return (string) @file_get_contents($sess_file);}//脚本执行结束之前,执行写入操作function write($id, $sess_data){ echo "sdfsf"; global $sess_save_path; $sess_file = "$sess_save_path/sess_$id"; if ($fp = @fopen($sess_file, "w")) { $return = fwrite($fp, $sess_data); fclose($fp); return $return; } else { return(false); }}function destroy($id){ global $sess_save_path; $sess_file = "$sess_save_path/sess_$id"; return(@unlink($sess_file));}function gc($maxlifetime){ global $sess_save_path; foreach (glob("$sess_save_path/sess_*") as $filename) { if (filemtime($filename) + $maxlifetime &< time()) { @unlink($filename); } } return true;}

补充&–涉及到的函数

session_start();// 开启session回话,其中session_id()的值是一次独立会话的标志session_name(); // 默认是PHPSESSID,在php.ini文件中可以自行配置。session_id(); // 在cookie中的体现是,session_name为键,session_id为值setcookie(); // 要想起作用,必须有页面的刷新session_destory(); // session_destroy — 销毁一个会话中的全部数据

“php开启session代码(讲述php设置session有效期)” 的相关文章

3d画图软件推荐(机械三维制图软件排名 )

你们肯定想问,我要学习什么软件呢?什么软件好学易上手?什么软件应用面广?这都是新手所要面临的一些问题。今天这期我给大家介绍3款常用的建模软件。想要学习软件的你千...

全世界最好的大学排名前十介绍,你知道排第一的是哪所大

世界大学排行榜很多,目前比较权威的排行榜是世界四大排行榜:即美国USNEWS世界大学排行榜,英国QS世界大学排行榜,英国泰晤士高等教育大学排行榜(THE),世界...

hr人事管理系统有哪些,hr人力资源平台介绍

有很多的传统制造企业,为了追求当下迎合互联网时代的转型,上线了hr人力资源管理系统,对自身的架构、流程、管理模式等进行了翻天覆地的改变!但是总是有很多员工不了解...

头条号推广一年多少钱(附教育行业头条推广费)

市场大了,商机也就多了,但同时伴随着的是竞争也多了。如果广告主只依靠传统的推广方式已经很难让自己的产品“走”出去了,在移动互联网时代就必需要学会借助互联网平台,...

2023年天猫发货时间规定新规则(官方公布发货新规)

为了持续提升买家购物体验,促进阿里巴巴交易市场的持续健康发展,阿里巴巴将对现行的发货相关规则进行升级,现予公告。新升级的规则将于2021年1月21日开始正式执行...

儿童网上英语培训哪个好,口碑好的线上少儿英语推荐

不论是文化生还是艺术生,从3-5岁起,许多孩子便游走于各类培训班。其中,英语是重点之一,更是大多数家庭的标配了。而随着家长对在线教育形式的接纳以及低龄留学潮的到...

办理京东plus会员划算吗(必知京东plus会福利优势)

今年京东618,百亿购物金等超级钜惠与价保共同掀起了“抄底式购物”风潮。6月8日,京东PLUS会员专属大日子——PLUSDAY又双叒叕将开启超强宠粉模式,不但推...

2018有前景的创业项目是哪些,大学生创业50个小案例

有这么一个行业,好多高中小姑娘深夜pei聊,换上微信性感头像,耳机摩擦出酥骨萝莉音,老妈半夜查房赶紧装睡避过之后再继续。这到底是什么行业?暴利吗?赚钱吗?适不适...

云服务架构的服务特点有哪些(揭晓云服务架构的5大特点)

如何能够保证信息化系统中企业数据的安全性、持续稳定的运行是目前信息化管理部门面临的首要问题。网络发展产生的云类产品是越来越受站长欢迎了,那么我们经常说的云服务...

动态cdn的作用(cdn主要功能讲解)

最近一直有小伙伴咨询小编:在网站运营过程中有没有必要使用CDN加速?小网站需要用CDN吗?对于这个问题小编的建议是:有必要,非常必要!为什么这么说,今天小编给大...