日期:2014-05-17  浏览次数:20462 次

问一个比较难的注销问题?
说明:
userState(1为未登陆,2为登陆),
一个login.php的页面,登陆成功后(保存COOKIE或SESSION),修改数据库里的userState(用户状态)   =   2.如果用户点注销后(清空COOKIE或SESSION),再修改数据库里的userState   =   1
问:当这个用户不点注销而是直接关闭页面,请问这个userState怎么修改为1?

------解决方案--------------------
<script language= "javascript ">
window.onbeforeunload = function() //author: meizz
{
var n = window.event.screenX - window.screenLeft;
var b = n > document.documentElement.scrollWidth-20;
if(b && window.event.clientY < 0 || window.event.altKey)
{

window.open( "login.php ");
}
}
</script>
------解决方案--------------------
不是好办法,万一死机什么的呢?最好的办法的判断多久没动作的,然后userState = 1
------解决方案--------------------
session 有个生命周期和浏览器挂钩,检查你的session_id/cookie是否存在/过期,不存在就调用注销程序
------解决方案--------------------
不行,好象没什么好方法,关掉浏览器了就没什么操作了.
服务器端是可以知道用户的当前状态的,是否只能在服务器端定时刷新....
JAVASCRIPT似乎也是可以的