phpsession删除
① php如何在用户没有操作20分钟后,清除SESSION
我给你思路:
简单点的
条件:
a.会用HTML设置自动刷新吧(可以设定刷新时间),不会的话网络
b.会用内嵌浮动窗口吧。,不会网络
c.会CSS隐藏DIV吧,不会网络查询
以上3个都会的话可以在你的需要的页面里面都加入一个隐藏的DIV,DIV里面内嵌浮动页面,内嵌浮动页面指定的是一个空白自动刷新的页面,这样你在当前页面看着是禁止的,其实里面隐藏了一个自动刷新的页面,这样你只要打开当前页面就会永不过期。
用JAVASCRIPT定时AJAX发送信息到后台一个页面。也可以实现永不过期。
客户端永久保存cookie。cookie里面保存用户名和密码,这个以前经常看到登陆页面下方有个提示下拉选框,让你选择保持1个月 1年 永久,现在也是经常用 不过你看不到了而已,你看网络主页登陆了后下次是不是不用登陆了,不过这种方法,在你20分钟后还是会端口session的,不过你感觉不到而已。
相对而已第一种你更容易理解些。第二种更加流行,主流是第二种。
不过第二种其实也是打开了一个页面,只是浏览器自动隐藏了。
只要访问了服务器,服务器就会延续session
② PHP怎样清除session.save
你改下php.ini:
;session.save_path
=
"/temp"
把前面的分号去掉,并且把路径改为一个实际存在的目录,比如
session.save_path
=
"C:\Windows\Temp"
然后你可以定期删除它,也可以写个批处理定期删除它。
③ PHP中的SESSION的删除为什么要有$_SESSION=array()
session_destroy()销毁当前会话中的全部数据,但是不会重置当前会话所关联的全局变量,也不会重置会话cookie。
上面一段是PHP手册中的内容
我来总结一下的话,就是你执行session_destroy()不会重置当前会话中的SESSION内容
所以需要用第二部对当前会话进行SESSION重置
否则,你在session_destroy之后还是能够取得SESSION数据的
当然,根据手册,上面还少了一步如下:
if(ini_get("session.use_cookies")){
$params=session_get_cookie_params();
setcookie(session_name(),'',time()-42000,
$params["path"],$params["domain"],
$params["secure"],$params["httponly"]
);
}
④ iis下php中的SESSION无法删除
1.销毁当前session变量 unset($_SESSION['admin']);
2.session_destroy();
3.session_unset();
2,3效果相同,销毁全部session变量
你可以用JS在客户端触发close事件的时候发送一个ajax给php,然后php执行销毁动作。
因为:http是无连接的,无法知道浏览器什么时候关闭或者跳转
⑤ linuxphp生成session文件不会自动删除
权限设置有问题。
session.gc_maxlifetime=1440把这个时间设短一些试试。
如果设定了session.gc_maxlifetime那么在这个时间后应该会自动删除无用session。
⑥ php 如何删除单个session并释放内存
unset($_SESSION['users_user_id']);这个是注销一个session变量;
session_destroy();是注销所有的session变量,并且结束session会话;
也就是说用unset($_SESSION['users_user_id']);就行了