用户登录容易做,但是下线呢?

kitling 2003-11-11 08:48:23
做一个程序,用一个用户数据库,库里有一个字段记录用户是否在线。

在用户第一次登录时,可以,并且把用户数据库里的用户是否在线字段改为1(不在线为0)。这样当另一台计算机也用这个用户登录时,就不会成功了。

但.......

退出呢?

1. 可以做一个注消按钮,让用户去按,然后调用某个php程序把字段值改为0。

2. 但是,有些用户不是很老实的,他们会按" X "按钮,把窗口关掉,所以还得做一个js的程序,用onunload事件,事件里再调用php程序。

3. 但但是,有些用户还是去按后退和刷新按钮,并用也调用了onunload事件:( 没办法,还要做测试是否是按X还是按后退和刷新按钮。

4. 但但但是,用户如果在打开窗口的情况下,强行断电......

天啊!

难道只能在服务器端一直不停地监测,看一看某一个用户是否活动?

但!如果就有那么一个用户偏偏就要看一个内容240个小时不变怎么办?

各位高手请告诉我如何做,谢谢!
...全文
68 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zalvsa 2003-11-12
  • 打赏
  • 举报
回复
页面隔时间刷新,如果某段时间内他的时间起始结束不变,那么就证明他不在线上了。
hillhero789 2003-11-12
  • 打赏
  • 举报
回复
哎,我觉得刷新不如写session_onend时间进行处理啦
kitling 2003-11-12
  • 打赏
  • 举报
回复
能不能在服务器端读取客户用的SESSION?
rockypan 2003-11-11
  • 打赏
  • 举报
回复
其实楼主想得已经很周到了,方法也说了,只是,
把"但但但是"的不要考虑了,之前以经足够,二三十分他如果不动,就让他不存在好了。
somecom 2003-11-11
  • 打赏
  • 举报
回复
最好是做时间判定法,
1、当用户登录时,登记登录时间并以每20分钟为频率刷新时间,并设置登录状态。
2、该用户正常退出时,不存在问题。
3、假设该用户非正常退出,而该帐号再次登录时就要比较上次登录时间,若相隔超30分钟,便重置它。完啦!
声明:以上做法是最大程度减少麻烦,事实上是没有绝对可行的办法。
gluck 2003-11-11
  • 打赏
  • 举报
回复
难道只有他在看吗?
别人也在看,也在刷新网页,每刷新一次,删除掉一定时间没刷新的。这就是。。。反正你不动是吧?那就会被别人刷掉。


你整天不思考是吧,总有一天会被别人刷掉的.^_^

21,882

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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