如何实现用户登录后不能再次登录?

wenq0917 2009-10-22 01:04:53
用户一经登录后就不允许这个用户在其他地方再次登录

这样的功能如何实现?

谢谢

...全文
407 47 打赏 收藏 转发到动态 举报
写回复
用AI写文章
47 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenq0917 2009-10-22
  • 打赏
  • 举报
回复
[Quote=引用 45 楼 bigwatercar 的回复:]
看楼主的意思是既要保证在本地不能重复登录,还要保证不能在别处重复登录,就像QQ,如果别处登录就会提示在别处登录,这里是禁止别处登录。

我觉得还是在数据库做标记比较好。然后设置一定的时间内如果没有反应将标识复位。技能防止意外断电,也能防止本地和别处重复登录。
[/Quote]

就是这个意思,跟QQ差不多
wenq0917 2009-10-22
  • 打赏
  • 举报
回复
[Quote=引用 44 楼 lgzxz999 的回复:]
这问题应该算比较常见,只是我没遇到过这样的要求.
先看看以前别人的回答:
http://topic.csdn.net/u/20090712/12/5d0e294b-2807-40cd-a88d-f5e95d0d1cb1.html?32763
6楼方法不错,我是看明白了,呵呵..


顺便说下,LZ还没明白,老让人家结帖做什么,想说就说,不想说就别说
[/Quote]


这个说的好,我真的是现在都还没有明白,但还是结了,不好意思了
  • 打赏
  • 举报
回复
看楼主的意思是既要保证在本地不能重复登录,还要保证不能在别处重复登录,就像QQ,如果别处登录就会提示在别处登录,这里是禁止别处登录。

我觉得还是在数据库做标记比较好。然后设置一定的时间内如果没有反应将标识复位。技能防止意外断电,也能防止本地和别处重复登录。
lgzxz999 2009-10-22
  • 打赏
  • 举报
回复
这问题应该算比较常见,只是我没遇到过这样的要求.
先看看以前别人的回答:
http://topic.csdn.net/u/20090712/12/5d0e294b-2807-40cd-a88d-f5e95d0d1cb1.html?32763
6楼方法不错,我是看明白了,呵呵..


顺便说下,LZ还没明白,老让人家结帖做什么,想说就说,不想说就别说
VistaKobe 2009-10-22
  • 打赏
  • 举报
回复
呵呵,各位高手,小弟学习了!呵呵
小曦子 2009-10-22
  • 打赏
  • 举报
回复
数据库中设置一个字段来判断
HooverHuang 2009-10-22
  • 打赏
  • 举报
回复
结吧,哎.........
wenq0917 2009-10-22
  • 打赏
  • 举报
回复
A电脑访问网页时会创建session
B电脑访问网页也会创建session

那在服务器又怎么分别取得这2个session呢?是这个意思吗?
lovebin_bin 2009-10-22
  • 打赏
  • 举报
回复
Session 可以搞定
HooverHuang 2009-10-22
  • 打赏
  • 举报
回复
关闭浏览器session肯定会清空的
HooverHuang 2009-10-22
  • 打赏
  • 举报
回复
session 不是存在服务器端得么 ,这个问题真的被楼主复杂化了
wenq0917 2009-10-22
  • 打赏
  • 举报
回复
[Quote=引用 35 楼 w198909253132 的回复:]
是楼主对session认识不够深
[/Quote]

那我再去学习学习
w198909253132 2009-10-22
  • 打赏
  • 举报
回复
是楼主对session认识不够深
wenq0917 2009-10-22
  • 打赏
  • 举报
回复
[Quote=引用 30 楼 zoqer 的回复:]
如果楼主有服务器的话,可以做计划任务,下次登陆时比对时间戳,多少时间内将数据库中的状态值更新一次,如果没有服务器的话估计很难用PHP实现权限如此严格的系统
[/Quote]

不是不能更新数据库的问题,是要什么时候更新?也就是说要如何才知道第一个登录的人已经退出了,不存在了
zoqer 2009-10-22
  • 打赏
  • 举报
回复
好纠结啊,到30几楼了...
wenq0917 2009-10-22
  • 打赏
  • 举报
回复
那要如何检查客户端还在不在啊?
HooverHuang 2009-10-22
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 wenq0917 的回复:]
引用 23 楼 zoqer 的回复:
如果是“不允许这个用户名在其它电脑登录”
可以检测登陆状态字段,
Y值表示 重复登陆;
N值表示 正确登陆;
为“Y”时 提示不能重复登陆,为“N”则 正确登陆;

正常退出可随便用cookie或session都可以,推荐用session,既然都写数据库了,就自己做session表,方便非正常退出或检测,非正常退出或检测思路见15楼. Over




非正常退出时,如把IE关了,又怎么修改数据库的字段?数据库的状态不是永远都是已经登录的状态?

[/Quote]

靠,你定时检查连接不行么 。
zoqer 2009-10-22
  • 打赏
  • 举报
回复
如果楼主有服务器的话,可以做计划任务,下次登陆时比对时间戳,多少时间内将数据库中的状态值更新一次,如果没有服务器的话估计很难用PHP实现权限如此严格的系统
iwantnet 2009-10-22
  • 打赏
  • 举报
回复
楼主,你先学习一下session原理。然后在你好好整理一下,大家发的贴子。也许你会找到一点思路,你现在将问题带到怪圈里面了。
wenq0917 2009-10-22
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 zoqer 的回复:]
如果是“不允许这个用户名在其它电脑登录”
可以检测登陆状态字段,
Y值表示 重复登陆;
N值表示 正确登陆;
为“Y”时 提示不能重复登陆,为“N”则 正确登陆;

正常退出可随便用cookie或session都可以,推荐用session,既然都写数据库了,就自己做session表,方便非正常退出或检测,非正常退出或检测思路见15楼. Over


[/Quote]

非正常退出时,如把IE关了,又怎么修改数据库的字段?数据库的状态不是永远都是已经登录的状态?
加载更多回复(27)

21,886

社区成员

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

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