php修改session生存时间,修改session的过期(生存)时间
以下我以php为例,万变不离其宗,希望对大家都有用吧。
session与cookie:
了解过两者的众所都知道,有些信息保存到cookie,有些出于安全问题就不能直接存到浏览器,这就要用到session了。然而对于浏览器,一般都是默认20-30分钟自动销毁或者关闭浏览器就会销毁。这显示是很头疼的事情,比如我们要实现用户登陆功能,关闭浏览器就要重新登陆,这搞什么鬼?所以我们要去试图改变它们。网上众说纷纭,你可以选择去修改默认配置文件,如php为例,修改php.ini的函数。但是染念却不喜欢修改修改默认,也在网上看到某些程序员是没有权限修改的,所以我们需要做到如何不修改默认文件达到这样的功能。
我们可能在网上看到这样的一例子:
$lifeTime = 24 * 3600;
session_set_cookie_params($lifeTime);
1.通过cookie的有效时间来设置session,我想说,这只是一部分,因为设置cookie有效期没有错,但是你没有传值,怎么达到修改session的生存时间呢。
2.虽然在你执行了一次后,真的session是24小时了,但是当你关闭浏览器后,再打开,session仍然还是需要你重新输入,因为浏览器找不到你的session的id啊...
如何设置session的生存时间呢?要做的就是把session传给cookie,由cookie给我们保存:
session_start();
isset($PHPSESSID) ? session_id($PHPSESSID) : $PHPSESSID = session_id();
setcookie('PHPSESSID', $PHPSESSID, time()+86400, "/");PHP session工作原理 以下以cookie传输PHPSESSID描述。客户端请求一个php的服务端地址。
服务端收到请求,此次php脚本中包含session_start()。
服务端会生成一个PHPSESSID。(默认session存储方式为session.save_handler=files,文件形式存储。生成的session文件名规则即为sess_PHPSESSID,session文件存在session.save_path中。)
服务端响应首部Response Headers:Set-Cookie:PHPSESSID=37vjjasgjdv2ouk1uomhgqkv50;
path=/。在客户端生成一个cookie保存此PHPSESSID。此时,客户端的cookie里面包含了PHPSESSID,之后客户端的每次请求首部Request Headers:Cookie:PHPSESSID=37vjjasgjdv2ouk1uomhgqkv50。服务端之后每次接收到客户端的请求就都能根据这个PHPSESSID来找到服务端的session文件,通过对这个session文件的读写操作即实现了session的超全局变量属性。
如果客户端禁用了cookie,由于无法使用cookie传递PHPSESSID,那么客户端每次请求,服务端都会重新建立一个session文件,而无法通过通过PHPSESSID来重用session文件,所以session也就失效了。
这种情况可以设置session.use_trans_sid来传输PHPSESSID,具体实现方式与cookie的区别就是将PHPSESSID通过HTTP的GET传输。每次请求的地址里面都会补全PHPSESSID参数”url?PHPSESSID=37vjjasgjdv2ouk1uomhgqkv50”来实现。
顾名思义,phpsessid就是当前会话id,session_id($PHPSESSID)达到当前会话,不然没存在,就要建立一个。然后再通过设置cookie(其实你打开看cookie,就是有PHPSESSID存在,而我们修改了它的存在时间而已),这样我们才能实现session在你想要的时间内过期,即使浏览器关闭了。
php修改session生存时间,修改session的过期(生存)时间相关推荐
- php session 修改,php session 如何修改,
php session 如何修改如何修改PHP会话,php session的修改是会话数据的增加,其修改方式是:首先通过"session_start"保存会话数据:然后传递&quo ...
- PHP SESSION生存时间设置
PHP SESSION生存时间设置 PHP中的session有效期默认是1440秒(24分钟)[weiweiok注:php5里默认的是180分],也就是说,客户端超过24分钟没有刷新,当前se ...
- 使用ALTER USER命令修改用户的密码、密码过期,锁定,解锁
使用ALTER USER命令可以用来修改用户的口令,设置口令过期,锁定以及解锁用户等等. 1.修改用户的口令,将用户的口令修改为新的密码 ALTER USER SCOTT IDENTIFIED BY ...
- session传递参数_分布式 Session 之 Spring Session 架构与设计
作者 | 李增光 杏仁后端工程师.「只有变秃,才能变强!」 前言 开始进行 Web 开发时,我们可能会遇到这样的情况,当服务器重启之后,之前的登录状态会失效需要重新登录.又或者你的应用程序部署了不止 ...
- 深度实现session【包括session入库、session机制和session和cookie的使用方法,完善会话机制(在分布式机器中也能使用)】、无限分类的实现...
1.session的注意点: @session_start();//这个配置需要注意,session开启中会有影响,所以使用错误抑制符进行限制[并且使用php.ini对session进行自动开启] s ...
- 服务器端Session和客户端Session, 以及cookie的区别
Session其实分为客户端Session和服务器端Session. 当用户首次与Web服务器建立连接的时候,服务器会给用户分发一个 SessionID作为标识.SessionID是一个由24个字符组 ...
- Spring Session Redis实现Session共享
Spring Session & Redis实现Session共享 前后端分离Session.单点登录实现 Session 共享简单方案,充当笔记 一.Session和Cookie 1.Ses ...
- 服务器端Session、客户端Session和Cookie的区别
1.Session其实分为客户端Session和服务器端Session. 当用户首次与Web服务器建立连接的时候,服务器会给用户分发一个 SessionID作为标识.SessionID是一个由24个字 ...
- Session分布式共享 = Session + Redis + Nginx
一.Session 1.Session 介绍 我相信,搞Web开发的对Session一定再熟悉不过了,所以我就简单的介绍一下. Session:在计算机中,尤其是在网络应用中,称为"会话控制 ...
最新文章
- vue 之 sass
- The NVIDIA driver on your system is too old (found version 10000). Please update your GPU driver by
- php打印预览jquery,JS实现浏览器打印、打印预览示例
- 另一种“人老心不老”
- VC线程同步技术剖析
- [实战]挖掘CSRF姿势
- JavaWeb开发Servlet学习
- 2019国内高端智能云呼叫中心系统,让简单的工作变得更有值得
- sqlbulkcopy是覆盖式更新吗_酒店无线覆盖解决方案,一文了解清楚
- 机械制造技术基础【4】
- linux 光纤网卡 软路由,联想M720Q、光网卡、Pon stick、Openwrt我的完美软路由折腾记...
- 机器学习笔记 - 深度学习的预处理和图像白化
- Capture One使用的几个小技巧
- mysql cve 扫描工具_数据库漏洞扫描
- LVS+PIRANHA测试
- 树莓派WEB服务器(Boa)CGI编程入门
- 【超全超详细】2W字零基础黑客学习路线,知识体系(附学习路线图)
- ARM中的字、半字、字节是多少位?
- Alpha 测试与 Beta 测试:有什么区别?
- filecoin lotus 图形化测试平台pond