PHP中可以通过session id删除服务器上某个session吗

PHP中可以通过session id删除服务器上某个session吗,第1张

我理解的可能有误哈,你说通过id是什么意思是variable name 如果是variable name 用unset()

如果想完全移除session 用session_destroy

php官网documentation

  Session 对象用于存储用户的信息。存储于 session 对象中的变量持有单一用户的信息,并且对于一个应用程序中的所有页面都是可用的。

  当用户关闭页面的时候触发onunload事件,在此事件中进行相应的处理,但由于页面事件通常采用javascript脚本,所以采用如下方式处理。

在当前退出页面上书写如下代码:

<script>

function exit(){

//alert('退出');

windowlocationhref="autoCleanasp";

}

</script>

<body onunload="javascript:exit();">

编辑autoCleanasp页面代码

<%

sessionAbandon()

%>

java 里的session是由服务器管理的,一般在服务器配置里都能设置

比如tomcat默认配置为30分钟

tomcat/conf/webxml文件

<session-config>

<session-timeout>30</session-timeout>

</session-config>

////销毁session////

function sessionDestroy() {

session_destroy();

setcookie(session_name(),'',time()-3600);

$_SESSION = array();

}

如果是session use cookie,使用file存储,一般就保留默认配置值,服务器以1/100的几率处理过期session,没必要每次请求都进行session gc处理

如果自己处理,你要删除过期session,总得遍历session保存目录的所有的session文件吧?你想想用户量如果很大,每个用户登录浏览服务器的页面,就会生成session文件,那得多少份session文件,然后遍历每个session文件,判断文件上次访问时间离当前时间是否超出了session_maxlife设置的时间,超过即删除。你如果用php去做这个工作,效率上不是更慢了吗!你还不如设置phpini的sessiongc_probability = 100和sessiongc_divisor = 100呢,但是一般不需要服务器接收每次http请求都处理session gc就是因为效率资源上的考量。几十万的访问量,每次请求都进行文件读删,这是不是会损耗不少资源呢?你再想想吧

javascript不能解决这个问题啊退出登陆,要做清理工作和使session失效最好调用servlet处理触发一个servlet处理的javascript本身很少直接处理session失效session保存在服务器端的,js是操作客户端的

秀才---那是不行的假如你把这个js写在jsp中间,管你调不调用js ,都要执行的

首先我想说明下、session是有

服务器

也就是Web

容器

创建的、使用requestgetSession()来获取HttpSession对象、使用sessionsetAttribute()进行数据的保存、而使用sessiongetAttribute()来获取session内保存的数据、 在以下三种情况下、都可以结束session一、关闭

浏览器

、二、调用HttpSession的invalidate()方法、删除HttpSession对象和数据、三、两次访问

时间间隔

大于session

定义

的非活动时间间隔、注意:在session结束时、服务器会清空当前浏览器相关的数据信息、

祝君好运

、谢谢、

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » PHP中可以通过session id删除服务器上某个session吗

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情