| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 875 人关注过本帖
标题:如何让同一个用户名在同一时间不能登录两个或更多?
只看楼主 加入收藏
wyg4859
Rank: 2
等 级:新手上路
威 望:4
帖 子:883
专家分:0
注 册:2006-8-2
收藏
 问题点数:0 回复次数:9 
如何让同一个用户名在同一时间不能登录两个或更多?
这个问题非常的棘手,我做的小系统里面的同一个用户名竟然可以在两个IP上同时登录,这还了得,我在数据库的会员表里又加了个online字段,以此来判断该用户名是否已登录,而且还给了一个默认值false1,如果等于false1的话,证明没有登录,具体大家看看吧,反正总是不行,一直弹出的是该用户已登录.请高手指点一下,多谢了!我把比较关键的代码帖出来请大家帮忙看看:
if rs("hy_close")=0 then
response.write "<script>alert('用户登录出错,下面是产生错误的可能原因:\n您注册的企业已被管理员关闭,如有问题请及时和我们联系');window.open('../index.asp','_self');</Script>"
Response.End
' response.write "update sc_hy set lasttim="&now()&" where hy_id="&rs("hy_id")
elseif rs("online")<>"false1" then
response.Write "<script>alert('该用户已登录!');history.go(-1);</script>"
response.End()
else
conn.execute("update sc_hy set online='true1',lasttime='"&now()&"',ip='"&userip&"' where hy_id='"&rs("hy_id")&"'")
end if
搜索更多相关主题的帖子: 用户名 时间 登录 
2006-08-09 09:44
做人很低调
Rank: 5Rank: 5
等 级:贵宾
威 望:18
帖 子:1268
专家分:0
注 册:2006-8-2
收藏
得分:0 
我也很想知道 类似的问题如何解决,帮你顶下

关注中。。。

其实我很低调,只是你不知道...
2006-08-09 11:11
hangxj
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2045
专家分:0
注 册:2006-4-10
收藏
得分:0 
如果改成
elseif rs("online")="true1" then

这样呢?

http://www./
2006-08-09 11:29
做人很低调
Rank: 5Rank: 5
等 级:贵宾
威 望:18
帖 子:1268
专家分:0
注 册:2006-8-2
收藏
得分:0 
那我有问题了 要是没有注销 而是关IE怎么办
那么以后再登录的时候会不会? 一直出现
response.Write "<script>alert('该用户已登录!');history.go(-1);</script>"
上边这条语句给出的提示 永远不能登录了

困惑,迷茫中。。。

其实我很低调,只是你不知道...
2006-08-09 11:35
wyg4859
Rank: 2
等 级:新手上路
威 望:4
帖 子:883
专家分:0
注 册:2006-8-2
收藏
得分:0 
如果改成elseif rs("online")="true1" then的话,那就不起作用了,能一直登录了

http://www.找到组织!找到党!
2006-08-09 11:38
hangxj
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2045
专家分:0
注 册:2006-4-10
收藏
得分:0 
那你可以查一下用户成功登录后,有没有将online置成true1?

http://www./
2006-08-09 11:41
做人很低调
Rank: 5Rank: 5
等 级:贵宾
威 望:18
帖 子:1268
专家分:0
注 册:2006-8-2
收藏
得分:0 
你们的意识是
数据库中的online字段 默认为false
用户登录成功 就更新数据库中的online字段 为ture
用户注销登录 就更新数据库中的online字段 为false

正常来说是可以
但是用户登录后,数据库online字段为ture了
用户要是这个时候没注销而是关闭了IE怎么办
用户实际上已经退出了 可是数据库online字段能变会false么?我的问题就在这。。

其实我很低调,只是你不知道...
2006-08-09 11:48
wyg4859
Rank: 2
等 级:新手上路
威 望:4
帖 子:883
专家分:0
注 册:2006-8-2
收藏
得分:0 
用户登录成功后,我的online的值是变成true1了,但是第二个用户依然可以登录,判断丝毫不起作用,晕!

http://www.找到组织!找到党!
2006-08-09 12:34
hangxj
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2045
专家分:0
注 册:2006-4-10
收藏
得分:0 
回复7楼的:
你所说的情况在昨天另一位发的贴子中有提过,自己可以去看一下.

回复8楼:
你的online是什么类型的?
把改成逻辑型的吧

然后代码改成
elseif rs("online") then

http://www./
2006-08-09 12:42
渚薰
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:1132
专家分:0
注 册:2006-8-6
收藏
得分:0 
以下是引用做人很低调在2006-8-9 11:48:49的发言:
你们的意识是
数据库中的online字段 默认为false
用户登录成功 就更新数据库中的online字段 为ture
用户注销登录 就更新数据库中的online字段 为false

正常来说是可以
但是用户登录后,数据库online字段为ture了
用户要是这个时候没注销而是关闭了IE怎么办
用户实际上已经退出了 可是数据库online字段能变会false么?我的问题就在这。。

我在之前有个帖子里说明了,对于用户关闭IE非正常注销的情况,需在global.asa文件的Session_OnEnd过程中把用户的online属性设置为false


个人ajax技术专题站: " target="_blank">http://www. 我不会闲你烦,只会闲你不够烦!
2006-08-09 13:15
快速回复:如何让同一个用户名在同一时间不能登录两个或更多?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.044787 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved