关闭浏览器,销毁session

你山炮 2014-07-07 02:08:16
关闭浏览器,销毁session 如何实现
...全文
1856 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
卖水果的net 2014-07-14
  • 打赏
  • 举报
回复
关闭 IE 会话就会失效,这个是自动的,但是不会马上生效。等Apache 来清除垃圾时,才算真正失效。
  • 打赏
  • 举报
回复
csdn的cookie,很明显,可以看到cookie中的session id
  • 打赏
  • 举报
回复
首先你要清楚session的机制。 session的标识靠session id, 浏览器发送session id到服务器,服务器才能根据session id从本地存储中拿到对应浏览器的session。session id常见实现方式是透过cookie或者url参数传递,默认情况下,session id的cookie在浏览器关闭就失效了,url的话,一般在url上可以看到 ...&sid=fdafoeijadlf之类的东西,那个就是session id。 服务器对保存在本地的session数据有时限的控制,默认半小时,即半小时不访问对应的cookie,服务器端就会清理掉该session。 因此销毁session设计两个方面,1、删除服务器上的session数据,2、干掉session id。 回到楼主的问题,默认情况下,php的session id透过cookie传递,lz可以打开firebug或者ie的f12工具,查看cookie,可以看到SESSIONID一项,并注意这一项的失效时限就是0应该,即浏览器关闭失效。那么浏览器程序本身在关闭的时候会干掉这个cookie,即session id没有了。下次访问,服务器就会设置一个新的session id。 如果半小时不刷新,服务器自身也会删除session的数据,那么就算你不关闭浏览器,再次访问页面,session id是发过去 ,但是服务器上的session数据没了,session也失效。 回答比较乱,楼主将就看吧! 上边提到的很多是假设默认配置没改的情况。如果是linux服务器,可以看看/tmp目录,会看到很多文本文件,那些就是session数据。浏览器的调试工具的cookie项可以看到session id。 如果session id是通过url改写实现而不利用cookie,那么直接观察url就行了。
傲雪星枫 2014-07-07
  • 打赏
  • 举报
回复
本來就是這樣,不需要實現的。
一起混吧 2014-07-07
  • 打赏
  • 举报
回复
默认情况下,关闭浏览器session就失效了。
猪崽儿0o0 2014-07-07
  • 打赏
  • 举报
回复
楼主肯定是问非正常情况下退出也要重置用户表中对应的用户状态?那个难度有点大,以前也有碰到类似的情况,可以使用定时任务扫描session_id,然后操作数据库修改对应用户的状态。也可以使用uchome的机制,去看看它的源码参考下。
你山炮 2014-07-07
  • 打赏
  • 举报
回复
就是关闭浏览器时让用户成为推出系统状态,,
小在在 2014-07-07
  • 打赏
  • 举报
回复
默认情况下,你关闭浏览器,服务器端会自动销毁对应的session_id 如果你想用页面来控制的话,用js的onunload事件。但非正常关闭就不好控制了。
xuzuning 2014-07-07
  • 打赏
  • 举报
回复
关闭浏览器 session id 就失效了,至于垃圾如何处理,等清洁工来了就知道了

20,361

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧