表usr,用來存放注冊用戶的資料
字段id '用戶ID
字段name '用戶名
字段pass '密碼
表online,用來記錄用戶在線登陸情況,為了簡單我只建立三個字段
字段oid '自動編號
字段oname '用戶名
字段odata '記錄活動時間(一開始是登陸時間)
現在我們建立登陸頁login.asp
<%
if request("aciton")="chklog" then
dim rs,name,pass
name=trim(request.form("name"))
pass=trim(request.form("pass"))
if name="" or pass="" then
response.write("<script>alert('用戶名,密碼都不能為空!');history.go(-1)</script>"
response.end
else
'先查詢用戶名是否為注冊用戶
set rs=conn.execute("select * from usr where name='"&name&"'")
if rs.eof and rs.bof then '如果為空則提示錯誤
rs.close:set rs=nothing '隨手關閉對象,釋放資源是個好習慣
response.write("<script>alert('沒有該注冊用戶!');history.go(-1)</script>"
response.end
else
if pass<>rs("pass") then '比較密碼
rs.close:set rs=nothing
response.write("<script>alert('密碼錯誤!');history.go(-1)</script>"
response.end
else
rs.close:set rs=nothing
'用戶名,密碼都沒錯后,查詢該用戶名是否已存在于online表中
set rs=conn.execute("select * from online where oname='"&name&"'")
if rs.eof and rs.bof then '如果為空,則說明該用戶沒有登陸,插入該用戶名和當前時間
rs.close:set rs=nothing
conn.execute"insert into online(oname,odata) values ('"&name&"',now())
session("username")=name
session("userpass")=pass
else '不為空說明該用戶已登陸,給出提示
rs.close.set rs=nothing
response.write("<script>alert('該用戶已登陸,如果你非正常退出,請5分鐘后再嘗試登陸!');history.go(-1)</script>"
response.end
end if
end if
end if
response.redirect("index.asp") '轉到首頁
end if
end if
%>
下面html登陸代碼略過*******************************************************
接著我們來寫退出頁面logout.asp
<% if session("username")<>"" and session("userpass")<>"" then '不為空,先刪除online表中的記錄
conn.execute"delete from online where oname='"&session("username")&"'"
end if
session("username")=""
session("userpass")=""
response.redirect("index.asp")
%>
下面開始寫最重要的文件了 online.asp
<%
dim rs,name
name=session("username")
if name<>"" then '不為空時,則查詢online表是否存在該用戶名
set rs=conn.execute("select * from online where oname='"&name&"'")
if rs.eof and rs.bof then '為空時插入該用戶名記錄
rs.close:set rs=nothing
conn.execute"insert into online(oname,odata) values ('"&name&"',now())"
else '不為空時,則更新該用戶活動時間
rs.close:set rs=nothing
conn.execute"update online set odata=now() where oname='"&name&"'"
end if
end if
conn.execute"delete from online where datediff('s',odata,now())>300" '刪除300秒內不活動的用戶!
%>