ASP 連接Access數(shù)據(jù)庫(kù)的登陸系統(tǒng)
一、基本目標(biāo)
首先在Access數(shù)據(jù)庫(kù)Database.mdb中存在著用戶信息表test:
編寫一個(gè)登陸系統(tǒng),如果用戶輸入的用戶名在表中沒有,則提示“查無此人”,如果輸入密碼錯(cuò)誤,則提示“密碼錯(cuò)誤”
如果用戶輸入的用戶名與密碼都正確,則跳轉(zhuǎn)到登陸成功頁(yè)
登陸成功頁(yè)在普通情況下,不允許通過輸入網(wǎng)址就能訪問
二、基本思想
使用asp的session對(duì)象確保了用戶名與密碼的傳遞。
彈出部分使用了javascript的腳本語言,使用asp對(duì)用戶信息表進(jìn)行查詢。
站點(diǎn)的基本結(jié)構(gòu)如下:
三、制作過程
整個(gè)站點(diǎn)使用utf-8碼保證不會(huì)亂碼,所以每一頁(yè)在頁(yè)頭必須有<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />,如果使用DW的高版本則自動(dòng)添加,低版本請(qǐng)把gb2312改成utf-8,記事本自便。
1、登陸頁(yè)面login.html僅僅是一個(gè)表單的靜態(tài)頁(yè)面。關(guān)鍵是用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登陸驗(yàn)證頁(yè)面是本系統(tǒng)最核心的頁(yè)面
<%@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傳過來的兩個(gè)信息用變量保存起來 username=Request.Form("username") password=Request.Form("password") '數(shù)據(jù)庫(kù)是上一級(jí)目錄的Database.mdb %> <% db="../Database.mdb" '連接數(shù)據(jù)庫(kù)指定動(dòng)作,這段必須獨(dú)立地占用一個(gè)<%%>否則在某些情況下IE8會(huì)出錯(cuò) 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> <% '否則拿查出來的密碼,與用戶輸入的密碼作對(duì)比,看是否一致 '查出來的密碼必須先用一個(gè)變量接住,在ASP中不能直接比較 else dbpwd=rs("password") '如果不一致,則彈窗,ASP沒有!=,表示不等于請(qǐng)用<> if password<>dbpwd then %> <script> alert("密碼錯(cuò)誤"); window.location.href = "login.html"; </script> <% else '如果用戶名密碼都輸入正確,則有此用戶,timeout是為了防止用戶非正常退出的,如果5分鐘沒有任何操作則判定其已經(jīng)退出,ok是正常登陸的標(biāo)志 Session.Timeout=5 Session("username")=username Session("login")="ok" %> <script> alert("登陸成功"); window.location.href = "success.asp"; </script> <% end if end if '用完數(shù)據(jù)庫(kù)記得關(guān) rs.close set rs=nothing conn.close set conn=nothing %> </body> </html>
3、success.asp
沒什么好說的,關(guān)鍵是看他是否有正常登陸標(biāo)志,login的內(nèi)容是否為ok,沒有則將其彈出登陸頁(yè)面
<%@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("請(qǐng)正常登陸!"); window.location.href = "login.html"; </script> <% else Response.Write("歡迎登陸,"+Session.Contents("username")) end if %> <a href="exit.asp">正常退出</a> </body> </html>
4、exit.asp退出處理頁(yè)面
<%@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立即超時(shí),并且移除所有session Session.Abandon Session.Contents.RemoveAll() %> <script> window.location.href = "login.html"; </script> </body> </html>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
asp 由動(dòng)態(tài)網(wǎng)頁(yè)轉(zhuǎn)變?yōu)殪o態(tài)網(wǎng)頁(yè)的實(shí)現(xiàn)代碼
在asp中實(shí)現(xiàn)由動(dòng)態(tài)網(wǎng)頁(yè)轉(zhuǎn)變?yōu)殪o態(tài)網(wǎng)頁(yè)可以使用模板生成,通過FsoFile進(jìn)行操作根據(jù)模板生成靜態(tài)網(wǎng)頁(yè),比較適合產(chǎn)品和新聞兩個(gè)板塊轉(zhuǎn)變!2009-07-07一個(gè)非常簡(jiǎn)單的將半角轉(zhuǎn)換為中文的函數(shù)
一個(gè)非常簡(jiǎn)單的將半角轉(zhuǎn)換為中文的函數(shù)...2006-09-09使用Flash DownLoad編寫采集器(之突破防盜連下載音樂文件)
使用Flash DownLoad編寫采集器(之突破防盜連下載音樂文件)...2007-02-02使用ODBC數(shù)據(jù)庫(kù)管理Serv-U的FTP用戶及相關(guān)ASP編程[附源碼示例下載]
使用ODBC數(shù)據(jù)庫(kù)管理Serv-U的FTP用戶及相關(guān)ASP編程[附源碼示例下載]...2007-11-11自己寫的文件操作的function和Sub vb.net dll
自己寫的文件操作的function和Sub vb.net dll...2007-08-08asp 通用數(shù)據(jù)庫(kù)連接過程函數(shù)
asp 通用數(shù)據(jù)庫(kù)連接過程函數(shù)...2007-08-08Session.TimeOut的最大取值是1440,超出會(huì)報(bào)錯(cuò)
Session.TimeOut的取值以分鐘為單位,最大取值是1440分鐘,也就是24個(gè)小時(shí),如果給它賦一個(gè)更大的值2009-06-06用VB生成DLL封裝ASP連接數(shù)據(jù)庫(kù)的代碼
用VB生成DLL封裝ASP連接數(shù)據(jù)庫(kù)的代碼...2007-02-02