程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> ASP 連接Access數據庫的登陸系統

ASP 連接Access數據庫的登陸系統

編輯:關於ASP編程

一、基本目標

首先在Access數據庫Database.mdb中存在著用戶信息表test:


編寫一個登陸系統,如果用戶輸入的用戶名在表中沒有,則提示“查無此人”,如果輸入密碼錯誤,則提示“密碼錯誤”


如果用戶輸入的用戶名與密碼都正確,則跳轉到登陸成功頁


登陸成功頁在普通情況下,不允許通過輸入網址就能訪問


二、基本思想

使用asp的session對象確保了用戶名與密碼的傳遞。

彈出部分使用了javascript的腳本語言,使用asp對用戶信息表進行查詢。

站點的基本結構如下:


三、制作過程
整個站點使用utf-8碼保證不會亂碼,所以每一頁在頁頭必須有<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />,如果使用DW的高版本則自動添加,低版本請把gb2312改成utf-8,記事本自便。 

1、登陸頁面login.html僅僅是一個表單的靜態頁面。關鍵是用post方法傳遞信息,Action是到login.asp

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>login</title>
</head>

<body>
<form method="post" action="login.asp"> 
username:<input type="text" name="username" />
password:<input type="password" name="password" />
<input type="submit" value="login" />
</form>
</body>
</html>

 2、login.asp登陸驗證頁面是本系統最核心的頁面

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>login</title>
</head>

<body>

<%
'向把login.html傳過來的兩個信息用變量保存起來
username=Request.Form("username")
password=Request.Form("password")
'數據庫是上一級目錄的Database.mdb
%>
<%
db="../Database.mdb"
'連接數據庫指定動作,這段必須獨立地占用一個<%%>否則在某些情況下IE8會出錯
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "driver={Microsoft Access Driver (*.mdb)};pwd=admin;dbq=" & Server.MapPath(db) 
%>
<%
Set rs = Server.CreateObject( "ADODB.Recordset" )
'看表中是否有此username
sql = "select * from test where username='"+username+"';"
rs.open sql,conn,1,3
'如果什麼都查不到,彈窗,彈回login.html
if (rs.bof and rs.eof) then
%>
<script>
alert("查無此人");
window.location.href = "login.html";
</script>
<%
'否則拿查出來的密碼,與用戶輸入的密碼作對比,看是否一致
'查出來的密碼必須先用一個變量接住,在ASP中不能直接比較
else
dbpwd=rs("password")
'如果不一致,則彈窗,ASP沒有!=,表示不等於請用<>
if password<>dbpwd then
%>
<script>
alert("密碼錯誤");
window.location.href = "login.html";
</script>
<%
else
'如果用戶名密碼都輸入正確,則有此用戶,timeout是為了防止用戶非正常退出的,如果5分鐘沒有任何操作則判定其已經退出,ok是正常登陸的標志
Session.Timeout=5
Session("username")=username
Session("login")="ok"
%>
<script>
alert("登陸成功");
window.location.href = "success.asp";
</script>
<%
end if
end if
'用完數據庫記得關
rs.close
set rs=nothing
conn.close
set conn=nothing
%>
</body>
</html>

 3、success.asp
 沒什麼好說的,關鍵是看他是否有正常登陸標志,login的內容是否為ok,沒有則將其彈出登陸頁面 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>歡迎登陸</title>
</head>

<body>
<%
if Session.Contents("login")<>"ok" then 
%>
<script>
alert("請正常登陸!");
window.location.href = "login.html";
</script>
<%
else
Response.Write("歡迎登陸,"+Session.Contents("username"))
end if
%>
<a href="exit.asp">正常退出</a>
</body>
</html>

4、exit.asp退出處理頁面 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>正在退出...</title>
</head>

<body>
<%
'所有session立即超時,並且移除所有session
Session.Abandon
Session.Contents.RemoveAll()
%>
<script>
window.location.href = "login.html";
</script>
</body>
</html>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved