ASP與數據庫運用:密碼驗證
發表于:2007-09-07來源:作者:點擊數:
標簽:
下面,我們就來看看實現密碼驗證的ASP需要些什么吧。 一、 ASP運行環境: Windows 95/98單機平臺:PWS (Personal Web Server)4.0 、windows NT 4.0/5.0 服務器 平臺:IIS(Inte .net Information Server )Service Pack 3 及其以上版本) NT workstation 4.0 工
下面,我們就來看看實現密碼驗證的ASP需要些什么吧。
一、 ASP運行環境:
Windows 95/98單機平臺:PWS (Personal Web Server)4.0 、windows NT 4.0/5.0
服務器平臺:IIS(Inte
.net Information Server )Service Pack 3 及其以上版本)
NT workstation 4.0 工作站平臺:PWS(Personal Web Server )NT workstation版及最新版的IE瀏覽器。
二、 用于制作ASP的軟件
Windows FrontPage 98/2000 、Dreamweaver 3.0 ,如果這些軟件你都沒有,那你就用windows 中的Notepad 當一次“代碼編寫狂”吧。不過ASP中很多代碼仍是需要我們手工編寫大量代碼的,用專用的網頁制作軟件只不過是偷一丁點懶而已。
三、 用哪一種
數據庫作為儲存用戶資料(用戶名及密碼)的數據庫呢?
SQL Server、Microsoft A
clearcase/" target="_blank" >ccess 97/2000等都可以。本人建議你使用Access,因為你可能對它比較熟悉,一旦有問題,解決起來比較容易,更深的原因是:Microsoft Access相對于其它非服務器等級的數據庫執行的效率要高得多。
好了,廢話說了這么多,可能你早已經不耐煩了。不過,這對于一些ASP的初學者可能還是有幫助的,對于這部分讀者,你們可能還得要看看關于ASP方面的書籍或網站來增加你對ASP基本語法的了解。
讓我們一步一步來做這個密碼驗證吧,我采用的是Windows 98 + PWS 4.0平臺,IE 5.0瀏覽器,網頁制作軟件:FrontPage 2000. Go!
一、創建用戶密碼數據庫
先用Access建立一個用戶密碼數據庫,建立字段名id和psd,并添加值.如:id的值我設為:admin,psd的值為:www,當然,你還可以繼續添加用戶id及psd,完成后保存為:psd.mdb。
二、編寫psd.asp(用戶登錄界面頁,完成驗證的功臣就是它了)及log.asp(成功登錄后顯示的頁面)。在編寫之前,我們來分析一下常見的用戶登錄界面,比如說你想收取基于web page方式免費郵件箱的登錄界面:管理用戶登錄的文件名常常為log.*,開始登錄時是這個文件,登錄完成后瀏覽器的地址欄中還是顯示的這個文件名,這是怎么回事兒呢?用ASP的方法來講,原來,用戶登錄的文件被包含在登錄完成后的文件中。以我現在要講的這個例子來說,psd.asp就是被包含在log.asp中了。用戶登錄時看到的文件名將是:log.asp,而log.asp要求系統先執行psd.asp,通過驗證之后才看到真正的log.asp網頁。對了!實際上密碼驗證的關鍵在psd.asp。在你讀完本文后,你會深深體會這一點。既然psd.asp文件是關鍵,那我們就先來看看psd.asp是怎么寫的。
運行FrontPage新建一個文件,并保存為:psd.asp(在FrontPage 的保存類型中選取“Active Server Pages”)。在FrontPage 左下角選取“HTML”先在它的頂部進行ASP源代碼的編寫,內容如下(以下源代碼中凡出現“‘……”的均為注釋):
?。?
function checkPwd(id,psd) '檢測用戶id及密碼
dim conn,param,rs
set conn=server.createobject("adodb.connection") '創建數據庫連接對象conn
param="driver={microsoft access driver (*.mdb)}" ‘指定數據庫驅動程序,不可省略寫為“access diver(*.mdb)”
conn.open param amp; ";dbq=" amp; server.mappath("psd.mdb") '用指定的數據庫驅動程序打開數據庫,并指定數據路徑
sql="select*from psd where id='" amp; id amp; "' and psd='" amp; psd amp; "'" ‘定義sql從數據庫中讀取id及psd的值,本行中的第一個psd是指數據庫名,以后的psd是指psd.mdb中的psd字段。
set rs=conn.execute(sql) '打開數據庫
if rs.eof then
checkpwd=false
else
checkpwd=true
end if
end function ‘以上幾句判斷是否已經讀完數據庫中的記錄,如果沒有,就向后讀,如果已經完成,則驗證用戶名及密碼。如果驗證通過,則為true,反之為flase
%>
?。?
if isEmpty(session("passed")) then session("passed")=false '判斷用戶輸入信息
id=request("id") ‘獲取用戶id(用戶名)
psd=request("psd") ‘獲取用戶psd(密碼)
if id="" or psd="" then
response.write"請輸入您的登錄名及密碼。" '如果用戶沒有輸入完整的信息,返回出錯信息。
elseif not checkpwd(id,psd) then
response.write"用戶名或密碼錯誤?。糱r>請檢查你的用戶名及密碼然后再試一次!" ‘如果用戶已經輸入完整信息,但輸入錯誤也返回出錯信息。
else session("passed")=true
end if
if not session("passed") then%> ‘用戶輸入的信息完全正確并驗證通過,以下開始編寫html代碼,做一個用戶登錄界面。
?。糷tml>
?。糷ead>
?。糾eta http-equiv="Content-Type" content="text/html; charset=gb2312">
?。紅itle>請您輸入您的用戶名及密碼?。?title>
?。?head>
?。糱ody bgcolor="#000000" text="#FFFFFF">
?。紁 align="center">
?。紁 align="center">?。?p>
?。紁 align="center"><b><font face="黑體" size="6">用戶登錄首頁</font></b></p>
?。紁 align="center">?。?p>
?。糵orm method="POST" action="<%=request.serverVariables("psd.mdb")%>">
?。紅able border="0" width="100%" cellspacing="0" cellpadding="0">
?。紅r>
?。紅d width="41%" align="right">用戶名:</td>
?。紅d width="59%"><input type="text" name="id" size="20" value="<%=id%>"></td>
?。?tr>
?。紅r>
?。紅d width="41%" align="right"> 密 碼:</td>
?。紅d width="59%"><input type="password" name="psd" size="20" value="<%=psd%>"></td>
?。?tr>
?。紅r>
?。紅d width="41%">?。?td>
?。紅d width="59%">?。?td>
?。?tr>
?。?table>
?。紁 align="center"><input type="submit" value="提交" name="B1"><input type="reset" value="清除" name="B1"></p>
?。?form>
?。?response.end
end if %> ‘驗證過程結束,進入加密網頁。
?。?body>
?。?html>
完成了psd.asp的編寫,可能你早已經迫不及待地想知道log.asp怎么編寫了吧。讓我們繼續吧!
Log.asp的內容:
?。?--#include file="psd.asp"--> ‘在log.asp源代碼中的頂部輸入這句,作用就是在系統執行log.asp之前先執行psd.asp啦!
?。糷tml>
?。糷ead>
?。紅itle>用戶驗證通過,您已經成功登錄系統</title>
?。?head>
?。糱ody><center><p><p><p><p>用戶驗證通過,您已經成功登錄?。糱r>
現在你可以進行你想要的操作了。如果你有什么問題,請來信Email<a href="mailto:kanwo@163.net?subject=問你幾個關于密碼驗證的問題">kanwo@163.net</a></center>
?。?body>
?。?html>
呵呵……手寫了這么多,還受得了吧。你在編寫完成之后,可以移植到其它平臺上,比如Windows NT。最后,將你做的這兩個asp文件及psd.mdb數據庫放在同一個目錄下(該目錄必須在PWS或IIS中有www服務),比如:c:\inetpub\wwwroot\。然后,在確保你的PWS或IIS在運行的情況下,在你們IE瀏覽器的地址欄中輸入http://127.0.0.1/log.asp,看看,會有什么!(如果你在登錄過程中聽到你的硬盤在響,可別嚇著了喲!)
|
原文轉自:http://www.anti-gravitydesign.com