asp判断多用户登录二

asp判断多用户登录,急,怎样判断不让同一个用户名同时在多台机器上登陆一个系统完成后在新建一个loginCONN.asp文件复制下面的代码保存用于连接数据库

<%
Dim CONN_TOL8
Dim Conn_T
Dim mmdd
mmdd="onlyTOL8.mdb"
Set CONN_TOL8 = Server.CreateObject("ADODB.Connection")
Conn_T="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""&mmdd&"")
on error resume next
CONN_TOL8.Open Conn_T %>

下面做一个loginPost.asp文件也存在这个目录下,这是关键,仔细看下面的代码:

<!--#include file="loginCONN.asp" -->
<%
''删除maxTime时间内部活动的用户,maxTime 在loginCONN.asp文件里面已经定义好了
Conn_TOL8.Execute("Delete From onlyLogin where DATEDIFF(''s'',OLtime, now()) > "& maxTime & "")
''================================================================
Dim rs, ts, txt, sql, userName, userPass
if Request.Form("Submit")="Login" then
userName=Request.Form("userName")''获取表单用户登陆名
userPass=Request.Form("userPass")''获取表单用户登陆密码
''由于我们这里讨论的不是安全问题所以用户密码都没有加密
Set rs = Server.CreateObject("ADODB.RECORDSET")
sql="SELECT * FROM users where userName = '' "& userName & "'' and userPass = '' "& userPass & "''"
rs.Open sql, CONN_TOL8,1,1
IF not rs.eof then
Call isOK(userName) '' 用户名密码正确调用次过程,isOK将会在下面的程序中定制。
else
Response.Write("<a href=javascript:history.go(-1)>用户名或密码错误</a>")
Response.End()
end if
rs.Close
Set rs=Nothing
end if
Sub isOK(userName)
Dim Olip '' 数据库中当前登陆用户名保存的ip
Dim Oltime '' 数据库中当前登陆用户名保存的最后刷新网页的时间,是计算用户是否在线的重要数据。
Dim OLip1 '' 记录当前用户登陆ip,用来区分是否为同一用户的标示
OLip1=Request.ServerVariables("REMOTE_ADDR")''取得提交登陆信息用户的IP
Set ts=Conn_TOL8.execute("Select * FROM onlyLogin WHERE OLname=''"& userName & "''")
if not ts.eof then '' 查询数据库是否有此用户的登陆过的信息
OLtime=ts("OLtime")
OLip=ts("OLip")
if OLip1<>OLip and DateDiff("s",OLtime,now()) < maxTime then
''上句判断如果提交登陆用户ip不是数据库中最后纪录的用户ip并且
''用户的最后活动时间和当前时间相隔并没超过规定的秒数则确认此用户当前在线
Response.Write "此用户目前在线,你无法从其他地方登陆此账号!"
Response.End()
else
''否则的话判定登陆成功付值给session
Session("lgName")=userName
Session("lgPass")=userPass
Response.Redirect "loginOK.asp"
Response.End
end if
else
''如果数据库没有次登陆用户纪录则执行下面的语句
Dim ls
Set ls=Server.CreateObject("ADODB.RECORDSET")
ls.Open"Select * From onlyLogin",CONN_TOL8,2,2
ls.ADDNEW
ls("OLname")=userName
ls("OLip")=OLip1
ls("OLtime")=NOW()
ls.UPDATE
ls.Close
Set ls=Nothing
''判定登陆成功付值给session
Session("lgName")=userName
Session("lgPass")=userPass
Response.Redirect "loginOK.asp"
Response.End
end if
End Sub %>

登陆成功后叶面会跳转到loginOK.asp

<style type="text/css">
<!--
body {background-color: #FF9900;}
-->
</style>
<% IF Session("lgName")<>"" then %>
您登陆成功了!!!下面是潜入网页内的iframe为的是在规定的时间刷新网页向服务器报告你是否在线
为了便于区分,frame网页我们采用了白色作为底色
<iframe border=0 name=new_date marginwidth=0 framespacing=0 marginheight=0 src="loginFrame.asp"
frameborder=0 noResize width=100 scrolling=no height=30 vspale="0"></iframe>
<% else %>
您没有登陆哈
<% end if %>

下面要做的是loginFrame.asp

<!--#include file="loginCONN.ASP" -->
<% CONN_TOL8.Execute("Update onlyLogin Set OLtime=''"& NOW() & "'' where OLname = '' "& Session("lgName") & "''") %>
<html><head><meta http-equiv="refresh" content="<%=(maxTime-5)%>; url=""></head></html>

到此为止程序就完成了,这个程序的关键就是判定用户是否在线

时间: 2024-10-24 20:32:56

asp判断多用户登录二的相关文章

asp判断多用户登录一

  asp判断多用户登录,怎样判断不让同一个用户名同时在多台机器上登陆一个系统 实现这个功能可有两种方式: 1.application 用application对象:如果做的是大型社区,可能要为每个登陆id生成一个appliaction,这样做虽然程序上设计会简单些但登陆用户过多及其耗费服务器资源,这里决不提倡,因为appliaction对象在用户登陆时生成很容易, 但是要做到真正的随着用户退出系统完全释放,到目前还没看到更好的方法~ <%  .....取用户名username.....  if

asp判断用户登录

 function chkLogin(b){      iSiteId = 1   /*   if(isNaN(iSiteId)||iSiteId<1){    // not logined    if(b){     // do login     if(doLogin()) return true;     else doAlert("","Login.asp?innerUrl="+sUrl);    }else{     iSiteId = 0;    

asp.net中session判断用户登录实现代码

今天突然想到一个判断session是否合法的做法,asp.net的,之前我们的做法是下面这样的形式的:  代码如下 复制代码  if (Session["UserID"] == "" || Session["UserID"] == null)  {      Response.Redirect("../Login.aspx?m=登录已超时,请重新登陆!");  } 一直我都觉得这个方法很不好,非常不好,但是一直也没找到好的方法

带数据库的ASP用户名密码登录验证代码

  带数据库的ASP用户名密码登录验证代码,这个代码里有登录判断的完整逻辑,包括连接数据库,查询判断用户名和密码是否正确,返回重填,关闭数据库记录集等,对ASP初学者有相当好的借鉴价值: 这里连接的是SQLSERVER数据库,数据库就不上传了,里面有两个字段,name是存储用户名,userpassword是密码字段,自己手动创建个,修改本代码里面的数据库连接信息就可测试了.

ios-tabBar中个人页判断未登录不跳转直接出现登录,登录成功时怎么直接显示个人页面(例淘宝登录)iOS

问题描述 tabBar中个人页判断未登录不跳转直接出现登录,登录成功时怎么直接显示个人页面(例淘宝登录)iOS tabBar中试图控制器:个人页面,跳转前, 判断是未登录,未登录的话,不跳转直接出现登录页面,登录成功时,怎么直接显示个人页面(例淘宝登录)iOS 解决方案 登陆成功后服务器给你返回个状态, self.tabBarController.selectedIndex = 个人的那个页面就可以了.应该可以的 解决方案二: 我们项目中也有这个功能,我们使用的是自定义tabbarcontrol

通过Dreamweaver用ASP设计注册登录系统出现未指定的错误,求高手解答

问题描述 通过Dreamweaver用ASP设计注册登录系统出现未指定的错误,求高手解答 本人初学Dreamweaver,小白一枚,用ASP设计注册登录系统,用的是本地/网络连接方式进行测试,在点击登录按钮后显示错误,错误为: Provider 错误 '80004005' 未指定的错误 /denglu.asp,行 9 求高手帮忙解答 解决方案 你把代码贴出来看看啊 解决方案二: 数据库连接有问题,你用的是什么版本的数据库,CONNECTSTRING是怎么写的? 另外检查数据库文件目录的访问权限.

ASP.Net mvc4登录跳转问题.

问题描述 ASP.Net mvc4登录跳转问题. 做了一个系统,在系统中随时都有登录的可能,怎么才能登录成功后跳转到之前需要登录的界面,怎么能够简单的实现,不用太复杂,URLrefer只能回到之前登录的界面? 解决方案 在登录控制器上获取URLrefer,并且作为QueryString附加在URL上,再Redirect到自己(如果发现QueryString已经有了,就正常处理) 解决方案二: 不过按理说,如果你用了[Authorize],那么默认MVC框架就会自动这么处理的. 解决方案三: 在进

asp.net做登录界面不想用外部数据库,想在vwd2005中直接新建数据库,怎么实现插入数据

问题描述 各位大侠,真心求教,asp.net做登录界面不想用外部数据库,想在vwd2005中直接新建sql数据库,怎么实现向表里插入数据 解决方案 解决方案二:右键,打开表.解决方案三:vs自带的数据库的操作跟Sqlserver是一样的解决方案四:建立和打开连接的语句也是下面这样吗SqlConnectioncon=newSqlConnection("server='(local)';database='data';uid='sa';pwd='sa'");con.Open();解决方案五

环信对于以下两种场景支持吗?单点多用户登录,单用户多点登录?

问题描述 单点多用户登录是指在单个APP客户端(IOS或者ANDROID)同时登录多个环信ID账号,接收不同的聊天信息单用户多点登录是指一个账号同时在多个设备(IOS或者ANDROID)同时登录 这两个场景环信都支持吗?看了文档,单用户多点登录似乎不支持,webim和app组合除外. 解决方案 1.一个账号不能多点登录,sdk有互踢功能2.多个账号也不能在一点登录,调用login成功之后,如果不调用对应的logout,再调用login就会报错3.webim和移动端可以同时在线解决方案二:客户端不