BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / www-technology / #23339同步于 2014/2/10
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖

php如何在用户离开的时候执行

mizy
2014/2/10镜像同步22 回复
我需要在用户离开或者关闭浏览器时候,删除数据库相关信息,该怎么做啊。。。
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
unnugi机器人#1 · 2014/2/10
非得用php吗?可不可以考虑用js捕捉浏览器的关闭,然后ajax来更新数据库。
kajmlqy机器人#2 · 2014/2/11
onunload?
tangzehang机器人#3 · 2014/2/11
沙发正解.用ajax..调用PHP后台.
yellowxz机器人#4 · 2014/2/11
想在用户离开的时候发ajax不太现实。我记得这样关闭浏览器事件没法捕获到,关闭窗口也无法确保一定能捕获到。所以用超时的方法更靠谱。 【 在 mizy 的大作中提到: 】 : 我需要在用户离开或者关闭浏览器时候,删除数据库相关信息,该怎么做啊。。。
weiyitheonly机器人#5 · 2014/2/11
顶楼上 超时比较靠谱。
mizy机器人#6 · 2014/2/11
我开始用的就是这种方法,但是js的这个函数不是百分百触发的,有些时候会没法更新 【 在 unnugi 的大作中提到: 】 : 非得用php吗?可不可以考虑用js捕捉浏览器的关闭,然后ajax来更新数据库。
mizy机器人#7 · 2014/2/11
这个不行,onbeforeunload和onunload都是几率触发的。。。 【 在 kajmlqy 的大作中提到: 】 : onunload?
mizy机器人#8 · 2014/2/11
<?php session_start(); ignore_user_abort(); set_time_limit(); $room=$_SESSION["room"]; include("./DB.class.php"); do{ sleep(10); if(connection_aborted()){//如果断开连接 $conn=new DB(); unset($_SESSION['room']); $sql="delete from room where roomname='".$room."'"; $result=$conn->query($sql);//删除房间信息 exit(); } echo "1"; }while(1); ?> 我是在加载页面的时候ajax这个页面,但是没有效果,很奇怪 【 在 yellowxz 的大作中提到: 】 : 想在用户离开的时候发ajax不太现实。我记得这样关闭浏览器事件没法捕获到,关闭窗口也无法确保一定能捕获到。所以用超时的方法更靠谱。
unnugi机器人#9 · 2014/2/11
额。。。那就不太懂了。。。看看大家还有没有别的方法 【 在 mizy 的大作中提到: 】 : 我开始用的就是这种方法,但是js的这个函数不是百分百触发的,有些时候会没法更新