关闭浏览器时,PHP会话(session)会终止,但是我想在会话终止后做一些数据库操作,怎么办?

我在写一个PHP聊天室。每次点击“注销”按钮,当前用户退出聊天室时,首先会注销PHPsession,然后会执行一句SQL语句,将正在退出聊天室的这个用户从“在线用户列表”... 我在写一个PHP聊天室。每次点击“注销”按钮,当前用户退出聊天室时,首先会注销PHP session,然后会执行一句SQL语句,将正在退出聊天室的这个用户从“在线用户列表”中删除。但是如果遇到session被动终止的情况(例如:关闭浏览器、session过期),这个SQL语句就执行不到了。我下次再登录聊天室时,发现那个用户名还“在线用户列表”中。请问,怎样在session被动注销的时候,执行一些php语句呢? 展开
 我来答
百度网友9b42271
2014-06-20 · 超过12用户采纳过TA的回答
知道答主
回答量:54
采纳率:100%
帮助的人:17.2万
展开全部
监听 浏览器关闭 执行 删除 在线 语句,session 把服务器上session 过期时间 写成0 应该 就是 只要 不关闭 或 不删除 session 。session 就 永远不过期。
追问
如何用PHP语句或者JavaScript语句监听浏览器关闭事件呢?
追答
php没有,但是 javascript 有 监听 关闭 事件。

window.onbeforeunload = onbeforeunload_handler;
window.onunload = onunload_handler;
function onbeforeunload_handler(){
var warning="确认退出?";
return warning;
}
function onunload_handler(){
var warning="谢谢光临";
alert(warning);
}

这段 代码 可以 监听 用户 关闭浏览器,然后会提示 如果关闭浏览器将丢失 数据 是否真的要离开此页面。 然后 根据用户的选择。去执行你的 sql
杨欣
2014-06-20 · 知道合伙人互联网行家
杨欣
知道合伙人互联网行家
采纳数:4627 获赞数:11877
阅读过JAVA\PHP\ASP等多种网络语言的知识。现任石家庄雅致化工有限公司网站技术。

向TA提问 私信TA
展开全部
你为何不设定一个在线时间等,到时间如何没有进行其他操作自动掉线不就可以了吗?
追问
我也想到过这种办法。但是这样也不太好吧?时间设长了,和不设差不多。设短了的话,明明没下线,只是一段时间没操作,就又要重新登录。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式