导航:首页 > 编程语言 > php定时删除session

php定时删除session

发布时间:2025-09-08 13:43:42

❶ 在php中怎么实现在登录页A登录用session保存用户名在主页B显示!当关闭页面或者注销登陆才销毁session!

关闭页面是无法销毁session的,
首先session是有一个保存期限的,默认好像是多少分钟来着忘记了,是可以自己设置,
比如session是30分钟,你在15分钟后访问网站,服务器检测到你是活动的,就给你session重置30分钟,如果你在31分钟访问那么 超时了,服务器在30分钟时已经把你以前的给丢弃了,所以你是一个新的用户,表现的现象就是有些网页你登陆后 直接点击右上角X 掉后马上在打开浏览器输入 刚刚登陆的网站你会发现你还是登陆状态..
在有比如你登陆了一个网页,长时间没有浏览过这个网页那么,在你下次点击这个网站链接时候,就发现让你重新登陆..
你直接关闭浏览器 一般情况下服务器是不会马上知道你已经离开的,
如果网站有注销按钮,你点击后就相当于告诉服务器你离开了,请把我的账号给注销了..

❷ PHP中SESSION的注销与清除

1、每个页面都必须开启session_start()后才能在每个页面里面使用session。
2、session_start()初始化session,第一次访问会生成一个唯一会话ID保存在客户端(是基于cookie保存的),用户下次访问时,session_start()会检查有没有会话ID,如果有浏览器会带着这个会话ID过来(通过发送头文件传过来的,这个可以用ff浏览器看到)来确定客户端。
3、给于cookie的session会在客户端保存一个会话ID即session_id,这个可以通过打印cookie看到,这个session_id的键值为session_name,
session_id()
==
$_COOKIE[session_name()]
4、如果客户端禁用了cookie,则必须用url传递session_id即给予URL的SESSION
5、注销SESSION时不能用unset($_SESSION),可以使用$_SESSION
=
array()或则$_SESSION
=
null,正确注销session的方法如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//正确的注销session方法:
//1开启session
session_start();
//2、清空session信息
$_SESSION
=
array();
//3、清楚客户端sessionid
if(isset($_COOKIE[session_name()]))
{
setCookie(session_name(),'',time()-3600,'/');
}
//4、彻底销毁session
session_destroy();
相关栏目
电脑编程
php教程
asp教程
asp.net教程
jsp教程
javascript教程
编程语言综合
编程开发
ios开发
oracle教程
mysql教程
mssql教程
access教程
安卓软件开发

❸ 涓轰粈涔堣剧疆php镄剆ession

涓銆佷粙缁
PHP涓璼ession榛樿よ繃链熸椂闂存槸1440S锛岃秴杩囱繖涓镞堕棿娌℃湁椤甸溃鍒锋柊鎴栬呯敤鎴峰叧闂浜嗘祻瑙埚櫒锛宻ession灏变细澶辨晥銆
浜屻佽剧疆
session鏂囦欢瀛桦偍鍦ㄦ湇锷″櫒绔锛岄氲繃淇濆瓨鍦ㄧ敤鎴风镄凷essionId涓庢湇锷″櫒杩涜屼氦浜掞纴session镄勯厤缃鏂囦欢鏄痯hp.ini锛岀浉鍏冲弬鏁板备笅锛
1.session.use_cookies = 1锛岄粯璁1锛屼唬琛⊿essionId阃氲繃cookie𨱒ヤ紶阃掞纴钖﹀垯浼氱敤Query_String
2.session.name = PHPSESSID锛岄粯璁PHPSESSID锛屼唬琛⊿essionID鍌ㄥ瓨镄勫彉閲忓悕绉帮纴鍙鑳芥槸Cookie锛屼篃鍙鑳芥槸Query_String𨱒ヤ紶阃
3.session.cookie_lifetime = 604800锛屾槸SessionID鍦ㄥ㈡埛绔疌ookie鍌ㄥ瓨镄勬椂闂达纴榛樿ゆ槸0锛屼唬琛ㄦ祻瑙埚櫒涓鍏抽棴SessionID绔嫔嵆澶辨晥锛岃繖閲屾垜璁剧疆浜7澶
4.session.gc_maxlifetime = 604800锛岄粯璁ゆ槸1440锛屼唬琛╯ession鍦ㄦ湇锷″櫒绔淇濈暀镄勬椂闂达纴瓒呰繃杩欎釜镞堕棿灏变细澶辨晥銆傝繖閲屾垜璁剧疆浜7澶╋纴涓庡㈡埛绔镄刢ookie链夋晥镞堕棿涓镊
涓夈佸叾浠栨儏鍐
涓鑸𨱍呭喌涓嬫妸杩椤洓涓鍊艰剧疆濂戒箣钖庡氨鍙浠ユ洿鏀箂ession镄勬湁鏁堟湡浜嗭纴浣嗘槸褰揿氢釜绔欑偣镄剆ession鏂囦欢閮戒缭瀛桦湪鍏鐢ㄤ复镞惰矾寰勬椂锛岀敱浜巅hp镄凣C锛圙arbage Collector锛夋満鍒讹纴镆愪釜绔欑偣钖锷ㄥ瀮鍦惧洖鏀舵満鍒讹纴閮戒细鎶婂叕鐢ㄤ复镞舵枃浠剁洰褰曚笅镄勬枃浠跺叏閮ㄦ竻闄わ纴杩椤氨浼氩艰嚧session澶辨晥锛岃В鍐虫柟娉曞氨鏄镟存敼php.ini閲宻ession鏂囦欢镄勪缭瀛樿矾寰勶细
session.save_path=钬树綘镄勮矾寰勨欙绂

❹ 如何设置session的生存时间

如何修改SESSION的生存时间

我们来手动设置 Session 的生存期:

<?php
session_start();
// 保存一天
$lifeTime = 24 * 3600;
setcookie(session_name(), session_id(), time() + $lifeTime, "/");
?>
其实 Session 还提供了一个函数 session_set_cookie_params(); 来设置 Session 的生存期的,该函数必须在 session_start() 函数调用之前调用:
<?php
// 保存一天
$lifeTime = 24 * 3600;
session_set_cookie_params($lifeTime);
session_start();
$_SESSION["admin"] = true;
?>
如果客户端使用 IE 6.0 , session_set_cookie_params(); 函数设置 Cookie 会有些问题,所以我们还是手动调用 setcookie 函数来创建 cookie。
php中session过期时间设置
网上很多人给出了解答:修改php配置文件中的session.gc_maxlifetime。如果想了解更多session回收机制,继续阅读。(本文环境php5.2)

概述:每一次php请求,会有1/100的概率(默认值)触发“session回收”。如果“session回收”发生,那就会检查/tmp/sess_*的文件,如果最后的修改时间到现在超过了1440秒(gc_maxlifetime的值),就将其删除,意味着这些session过期失效。

1. session在server端(一般是Apache with PHP mole)如何存在的?

默认的,php会将session保存在/tmp目录下,文件名为这个样子:sess_。每一个文件对应了一个session(会话)。

more /tmp/sess_
username|s:9:”jiangfeng”;admin|s:1:”0″;
#变量名|类型:长度:值
删除这里的session文件,就表示对应的session失效了。

2. session在client端(一般是浏览器)如何存在的?

session在浏览器端,只需要保存session
ID(由server端生成的唯一ID)就可以了。有两种保存方式:在cookie中、在url里面。如果cookie中保存session
ID,就可以看到浏览器的cookie中有一个PHPSESID变量。如果是URL传递的,就可以看到形如:
index.php?PHPSESID=的URL。(在server端通过session.use_cookies来控制使用哪一种方式)

3. 在server端,php如何判断session文件是否过期?

如果”最后的修改时间”到”现在”超过了gc_maxlifetime(默认是1440)秒,这个session文件就被认为是过期了,在下一次session回收的时候,如果这个文件仍然没有被更改过,这个session文件就会被删除(session就过期了)。

简单的说,如果我登录到某网站,如果在1440秒(默认值)内没有操作过,那么对应的session就认为是过期了。

所以,修改php.ini文件中的gc_maxlifetime变量就可以延长session的过期时间了:(例如,我们把过期时间修改为86400秒)

session.gc_maxlifetime = 86400
然后,重启你的web服务(一般是apache)就可以了。

注意:php5里面session过期使用了回收机制。这里设置时间为86400秒,如果session在86400秒内没有被修改过,那么在下一次“回收”时才真的被删除。

3. session“回收”何时发生?

默认情况下,每一次php请求,就会有1/100的概率发生回收,所以可能简单的理解为“每100次php请求就有一次回收发生”。这个概率是通过以下参数控制的

#概率是gc_probability/gc_divisor
session.gc_probability = 1
session.gc_divisor = 100
注意1:假设这种情况gc_maxlifetime=120,如果某个session文件最后修改时间是120秒之前,那么在下一次回收(1/100的概率)发生前,这个session仍然是有效的。

注意2:如果你的session使用session.save_path中使用别的地方保存session,session回收机制有可能不会自动处理过期session文件。这时需要定时手动(或者crontab)的删除过期的session:cd
/path/to/sessions; find -cmin +24 | xargs rm

4. 一些特殊情况

因为回收机制会检查文件的“最后修改时间”,所以如果某个会话是活跃的,但是session的内容没有改变过,那么对应的session文件也就没有改变过,回收机制会认为这是一个长时间没有活跃的session而将其删除。这是我们不愿看到的,可以通过增加如下的简单代码解决这个问题:

<?php
if(!isset($_SESSION['last_access'])||(time()-$_SESSION['last_access'])>60)
$_SESSION['last_access'] = time();
?>
代码会每隔60秒,尝试修改修改一次session。

总结:如果想修改session过期时间,修改变量gc_maxlifetime就可以了。php5的session采用被动的回收机制(garbage
collection)。过期的session文件不会自己消失,而是通过触发“回收”来处理过期的session。

❺ php关闭浏览器如何使session失效

session 在服务器上的管理,通常以文件形式保存,文件名就是 session id。

浏览器关闭的过程中,服务器上的 session 数据并没有被销毁,因为这时候没有发送任何请求,服务器那边不会知道是否要销毁 session 的数据。浏览器再次启动重新打开页面的时候,发送的 session id 还是原来的 id,虽然你说没用到 cookie,但是这个 id 就是通过 cookie 发送的。

你可以看看 php.ini 的设置,主要看这两项:

session.gc_maxlifetime
session.cookie_lifetime

❻ php中session_destroy()的作用

Session_destroy()销毁当前会话中的所有数据,但不重置与当前会话关联的全局变量,也不重置会话cookie。如果需要再次使用会话变量,则必须再次调用session_start()函数。

为了完全销毁会话,例如当用户注销时,必须同时重置会话ID。如果会话ID是由cookie传递的,那么还会调用setcookie()函数来删除客户机的会话cookie。

使用方法:

1.要在PHP中使用会话,首先需要启动会话。要启动会话,您需要使用PHP的内置函数session_start(),如图所示。

❼ PHP中session变量的销毁

1.何为session?
相当于一个客户端(可以是浏览器、app、ftp等其他,而且同一个浏览器多开几个又算是不同的客户端)对服务器的一个访问,这个期间服务器为此建立一个唯一的标示(session_id
session_name),其实也就是一个数组Array(),Session的开始和结束并不以业务上的输入用户名密码开始,也不以关闭浏览器和网页刷新而结束
2.session变量的销毁
程序代码
<?php
session_unset();
session_destroy();
?>
session_unset()
释放当前在内存中已经创建的所有$_SESSION变量,但不删除session文件以及不释放对应的session
id
session_destroy()
删除当前用户对应的session文件以及释放session
id,内存中的$_SESSION变量内容依然保留
【注意】:
删除session方法:
1、unset
($_SESSION['xxx'])
删除单个session,unset($_SESSION['xxx'])
用来unregister一个已注册的session变量。其作用和session_unregister()相同。session_unregister()在PHP5中不再使用,可将之打入冷宫。
unset($_SESSION)
此函数千万不可使用,它会将全局变量$_SESSION销毁,而且还没有可行的办法将其恢复。用户也不再可以注册$_session变量。
2、$_SESSION=array()
删除多个session
3、session_destroy()结束当前的会话,并清空会话中的所有资源。。该函数不会unset(释放)和当前session相关的全局变量(globalvariables),也不会删除客户端的session
cookie.PHP默认的session是基于cookie的,如果要删除cookie的话,必须借助setcookie()函数。
返回值:布尔值。
功能说明:这个函数结束当前的session,此函数没有参数,且返回值均为true
session_unset()
如果使用了$_session,则该函数不再起作用。由于PHP5必定要使用$_session,所以此函数可以打入冷宫了。
可以得出删除session的步骤:
①session_start()
②$_SESSION=array()/unset($_session['xxx'])
③session_destroy()

❽ PHP中,怎么才能关闭浏览器后自动销毁session

php的session过期机制是由这三个配置决定:
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 1440

过期时间是针对session文件最新修改时间的,如果最新修改超过了gc_maxlifetime的时间,gc会有1/1000分之一的概率回收(删掉session文件)

而每次浏览器请求,都是cookie中带了PHPSESSID去服务器中匹配session的
http请求是无状态请求,你一次请求后得到了响应,再没有其他请求的话,基本服务器跟你浏览器没啥关系了,所以你关闭了浏览器,不可能去命令服务器主动销毁session

要想实现你要的效果,只能设置cookie的过期时间了,关闭会话后cookie过期(一般不设过期时间,默认是关闭浏览器失效),这样,你再打开,就要重新登录,不要关心session的过期了,让gc自己回收把。

阅读全文

与php定时删除session相关的资料

热点内容
云耀云服务器中文 浏览:504
p2p借贷服务行业白皮书pdf 浏览:880
服务器lp地址是什么意思 浏览:255
单片机打分器 浏览:837
康德道德学绝对命令 浏览:206
绝地求生如何看自己在哪个服务器 浏览:965
富士通单片机程序下载软件 浏览:857
带平方的运算法则 浏览:941
姜振宇微表情pdf 浏览:388
如何看方舟服务器的倍率 浏览:73
招行app如何设置退出登录 浏览:429
程序员发文章一般多久 浏览:859
什么是单片机定时器 浏览:90
无线路由器怎么当服务器 浏览:937
linux的and命令 浏览:165
做程序员入党 浏览:544
php定时删除session 浏览:606
什么的命令填空 浏览:383
命令方块做的坐骑模组 浏览:188
安卓rsa公钥加密 浏览:777