<% 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 "<a href=javascript:history.go(-1)>此用户目前在线,你无法从其他地方登陆此账号!</a>" 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 %>