[ASP开发]论坛中怎样才能使一个用户名在线时,该用户名不能第二次登陆??

(http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=815)

比如说,用户A已经登陆了论坛,当用户B在另一部机子上使用用户A的账号及密码登陆同一个论坛时,将会返回登陆页面,并告知用户此账号正在使用,请重新登陆。  
 
这个功能在asp中怎样实现,请各位赐教!  
---------------------------------------------------------------  
 
<%  
.....取用户名username.....  
if  Application(username)<>""  then  
     response.write  "该用户已经登录"  
     response.end  
end  if  
Application(username)=Password  '存入该用户的密码  
%>  
---------------------------------------------------------------  
 
1.利用cookies或session  
当用户登陆时判断session("login")或cookies(login")的值是否为空,  
为空登陆成功,但不为空则说明有人已经登陆.  
2.表中多一个字段aa  
当用户登陆时判断aa值是否为0,  
为0登陆成功,但不为0而为1则说明有人已经登陆.  
当用户退出时则将该值改为0  
 
---------------------------------------------------------------  
 
对,就同楼上的一样,你可在用户信息数据表中一个字段,在用用户登陆时设其值为1,默认为0(不在线),在用户登陆验证用户名和口令时直接设值。用session判断是否在线。不在线就设值为0.这样可以吧?  
 
为了判断在不同机子上,可加一个字段,用于记录IP.  
---------------------------------------------------------------  
 
有个online的表记录在线的人员,登陆时Application("isuserlogin")=true  
<%  
if  Application("isuserlogin")=true  then  
     response.write  "该用户已经登录"  
     response.end  
end  if  
%>  
 
在global文件中加上session  onend事件,下线时Application("isuserlogin")=false  
此外还要检测是否吊线,有专门的办法,是server对象里的某项  
 
---------------------------------------------------------------  
 
用cookie不能保证

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值