Microsoft 的大作ASP(Active Server Pages)以其易學易用、擴充性好、功能多而強等優(yōu)點正掀起一場新的web編程革命(從嚴格意義上講,編寫asp并不是編程),它以令人吃驚的發(fā)展和普及速度大有取代由perl等語言編寫的CGI(Common Gateway Interface,通用網(wǎng)關(guān)接口) 的勢頭。基于web page方式的web管理模式已經(jīng)成為潮流,看看現(xiàn)在的網(wǎng)管們,有誰不會asp的編寫呢?要管理?那你可能就要用到我這里要說的“密碼驗證”了。簡單地說,密碼驗證就是首先判斷你是不是有登錄權(quán)限,如果有,就繼續(xù),否則,哼哼……。什么?你到現(xiàn)在還不知道ASP是什么東東?“該程序執(zhí)行了非法操作,即將被關(guān)閉。如仍有問題,請與程序供應商聯(lián)系?!?---------系統(tǒng)語
下面,我們就來看看實現(xiàn)密碼驗證的ASP需要些什么吧。
一、 ASP運行環(huán)境:
Windows 95/98單機平臺:PWS (Personal Web Server)4.0 、windows NT 4.0/5.0服務器平臺:IIS(Internet 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中很多代碼仍是需要我們手工編寫大量代碼的,用專用的網(wǎng)頁制作軟件只不過是偷一丁點懶而已。
三、 用哪一種數(shù)據(jù)庫作為儲存用戶資料(用戶名及密碼)的數(shù)據(jù)庫呢?
SQL Server、Microsoft Access 97/2000等都可以。本人建議你使用Access,因為你可能對它比較熟悉,一旦有問題,解決起來比較容易,更深的原因是:Microsoft Access相對于其它非服務器等級的數(shù)據(jù)庫執(zhí)行的效率要高得多。
好了,廢話說了這么多,可能你早已經(jīng)不耐煩了。不過,這對于一些ASP的初學者可能還是有幫助的,對于這部分讀者,你們可能還得要看看關(guān)于ASP方面的書籍或網(wǎng)站來增加你對ASP基本語法的了解。
讓我們一步一步來做這個密碼驗證吧,我采用的是Windows 98 + PWS 4.0平臺,IE 5.0瀏覽器,網(wǎng)頁制作軟件:FrontPage 2000. Go!
一、創(chuàng)建用戶密碼數(shù)據(jù)庫
先用Access建立一個用戶密碼數(shù)據(jù)庫,建立字段名id和psd,并添加值.如:id的值我設為:admin,psd的值為:www,當然,你還可以繼續(xù)添加用戶id及psd,完成后保存為:psd.mdb。
二、編寫psd.asp(用戶登錄界面頁,完成驗證的功臣就是它了)及l(fā)og.asp(成功登錄后顯示的頁面)。在編寫之前,我們來分析一下常見的用戶登錄界面,比如說你想收取基于web page方式免費郵件箱的登錄界面:管理用戶登錄的文件名常常為log.*,開始登錄時是這個文件,登錄完成后瀏覽器的地址欄中還是顯示的這個文件名,這是怎么回事兒呢?用ASP的方法來講,原來,用戶登錄的文件被包含在登錄完成后的文件中。以我現(xiàn)在要講的這個例子來說,psd.asp就是被包含在log.asp中了。用戶登錄時看到的文件名將是:log.asp,而log.asp要求系統(tǒng)先執(zhí)行psd.asp,通過驗證之后才看到真正的log.asp網(wǎng)頁。對了!實際上密碼驗證的關(guān)鍵在psd.asp。在你讀完本文后,你會深深體會這一點。既然psd.asp文件是關(guān)鍵,那我們就先來看看psd.asp是怎么寫的。
運行FrontPage新建一個文件,并保存為:psd.asp(在FrontPage 的保存類型中選取“Active Server Pages”)。在FrontPage 左下角選取“HTML”先在它的頂部進行ASP源代碼的編寫,內(nèi)容如下(以下源代碼中凡出現(xiàn)“‘……”的均為注釋):
<%
function checkPwd(id,psd) '檢測用戶id及密碼
dim conn,param,rs
set conn=server.createobject("adodb.connection") '創(chuàng)建數(shù)據(jù)庫連接對象conn
param="driver={microsoft access driver (*.mdb)}" ‘指定數(shù)據(jù)庫驅(qū)動程序,不可省略寫為“access diver(*.mdb)”
conn.open param & ";dbq=" & server.mappath("psd.mdb") '用指定的數(shù)據(jù)庫驅(qū)動程序打開數(shù)據(jù)庫,并指定數(shù)據(jù)路徑
sql="select*from psd where id='" & id & "' and psd='" & psd & "'" ‘定義sql從數(shù)據(jù)庫中讀取id及psd的值,本行中的第一個psd是指數(shù)據(jù)庫名,以后的psd是指psd.mdb中的psd字段。
set rs=conn.execute(sql) '打開數(shù)據(jù)庫
if rs.eof then
checkpwd=false
else
checkpwd=true
end if
end function ‘以上幾句判斷是否已經(jīng)讀完數(shù)據(jù)庫中的記錄,如果沒有,就向后讀,如果已經(jīng)完成,則驗證用戶名及密碼。如果驗證通過,則為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"用戶名或密碼錯誤!
請檢查你的用戶名及密碼然后再試一次!" ‘如果用戶已經(jīng)輸入完整信息,但輸入錯誤也返回出錯信息。
else session("passed")=true
end if
if not session("passed") then%> ‘用戶輸入的信息完全正確并驗證通過,以下開始編寫html代碼,做一個用戶登錄界面。
請您輸入您的用戶名及密碼!
用戶登錄首頁
<%response.end
end if %> ‘驗證過程結(jié)束,進入加密網(wǎng)頁。
完成了psd.asp的編寫,可能你早已經(jīng)迫不及待地想知道log.asp怎么編寫了吧。讓我們繼續(xù)吧!
Log.asp的內(nèi)容:
‘在log.asp源代碼中的頂部輸入這句,作用就是在系統(tǒng)執(zhí)行l(wèi)og.asp之前先執(zhí)行psd.asp啦!
用戶驗證通過,您已經(jīng)成功登錄系統(tǒng)
用戶驗證通過,您已經(jīng)成功登錄!
現(xiàn)在你可以進行你想要的操作了。如果你有什么問題,請來信Emailkanwo@163.net
下面,我們就來看看實現(xiàn)密碼驗證的ASP需要些什么吧。
一、 ASP運行環(huán)境:
Windows 95/98單機平臺:PWS (Personal Web Server)4.0 、windows NT 4.0/5.0服務器平臺:IIS(Internet 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中很多代碼仍是需要我們手工編寫大量代碼的,用專用的網(wǎng)頁制作軟件只不過是偷一丁點懶而已。
三、 用哪一種數(shù)據(jù)庫作為儲存用戶資料(用戶名及密碼)的數(shù)據(jù)庫呢?
SQL Server、Microsoft Access 97/2000等都可以。本人建議你使用Access,因為你可能對它比較熟悉,一旦有問題,解決起來比較容易,更深的原因是:Microsoft Access相對于其它非服務器等級的數(shù)據(jù)庫執(zhí)行的效率要高得多。
好了,廢話說了這么多,可能你早已經(jīng)不耐煩了。不過,這對于一些ASP的初學者可能還是有幫助的,對于這部分讀者,你們可能還得要看看關(guān)于ASP方面的書籍或網(wǎng)站來增加你對ASP基本語法的了解。
讓我們一步一步來做這個密碼驗證吧,我采用的是Windows 98 + PWS 4.0平臺,IE 5.0瀏覽器,網(wǎng)頁制作軟件:FrontPage 2000. Go!
一、創(chuàng)建用戶密碼數(shù)據(jù)庫
先用Access建立一個用戶密碼數(shù)據(jù)庫,建立字段名id和psd,并添加值.如:id的值我設為:admin,psd的值為:www,當然,你還可以繼續(xù)添加用戶id及psd,完成后保存為:psd.mdb。
二、編寫psd.asp(用戶登錄界面頁,完成驗證的功臣就是它了)及l(fā)og.asp(成功登錄后顯示的頁面)。在編寫之前,我們來分析一下常見的用戶登錄界面,比如說你想收取基于web page方式免費郵件箱的登錄界面:管理用戶登錄的文件名常常為log.*,開始登錄時是這個文件,登錄完成后瀏覽器的地址欄中還是顯示的這個文件名,這是怎么回事兒呢?用ASP的方法來講,原來,用戶登錄的文件被包含在登錄完成后的文件中。以我現(xiàn)在要講的這個例子來說,psd.asp就是被包含在log.asp中了。用戶登錄時看到的文件名將是:log.asp,而log.asp要求系統(tǒng)先執(zhí)行psd.asp,通過驗證之后才看到真正的log.asp網(wǎng)頁。對了!實際上密碼驗證的關(guān)鍵在psd.asp。在你讀完本文后,你會深深體會這一點。既然psd.asp文件是關(guān)鍵,那我們就先來看看psd.asp是怎么寫的。
運行FrontPage新建一個文件,并保存為:psd.asp(在FrontPage 的保存類型中選取“Active Server Pages”)。在FrontPage 左下角選取“HTML”先在它的頂部進行ASP源代碼的編寫,內(nèi)容如下(以下源代碼中凡出現(xiàn)“‘……”的均為注釋):
<%
function checkPwd(id,psd) '檢測用戶id及密碼
dim conn,param,rs
set conn=server.createobject("adodb.connection") '創(chuàng)建數(shù)據(jù)庫連接對象conn
param="driver={microsoft access driver (*.mdb)}" ‘指定數(shù)據(jù)庫驅(qū)動程序,不可省略寫為“access diver(*.mdb)”
conn.open param & ";dbq=" & server.mappath("psd.mdb") '用指定的數(shù)據(jù)庫驅(qū)動程序打開數(shù)據(jù)庫,并指定數(shù)據(jù)路徑
sql="select*from psd where id='" & id & "' and psd='" & psd & "'" ‘定義sql從數(shù)據(jù)庫中讀取id及psd的值,本行中的第一個psd是指數(shù)據(jù)庫名,以后的psd是指psd.mdb中的psd字段。
set rs=conn.execute(sql) '打開數(shù)據(jù)庫
if rs.eof then
checkpwd=false
else
checkpwd=true
end if
end function ‘以上幾句判斷是否已經(jīng)讀完數(shù)據(jù)庫中的記錄,如果沒有,就向后讀,如果已經(jīng)完成,則驗證用戶名及密碼。如果驗證通過,則為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"用戶名或密碼錯誤!
請檢查你的用戶名及密碼然后再試一次!" ‘如果用戶已經(jīng)輸入完整信息,但輸入錯誤也返回出錯信息。
else session("passed")=true
end if
if not session("passed") then%> ‘用戶輸入的信息完全正確并驗證通過,以下開始編寫html代碼,做一個用戶登錄界面。
用戶登錄首頁
<%response.end
end if %> ‘驗證過程結(jié)束,進入加密網(wǎng)頁。
完成了psd.asp的編寫,可能你早已經(jīng)迫不及待地想知道log.asp怎么編寫了吧。讓我們繼續(xù)吧!
Log.asp的內(nèi)容:
‘在log.asp源代碼中的頂部輸入這句,作用就是在系統(tǒng)執(zhí)行l(wèi)og.asp之前先執(zhí)行psd.asp啦!
用戶驗證通過,您已經(jīng)成功登錄!
現(xiàn)在你可以進行你想要的操作了。如果你有什么問題,請來信Emailkanwo@163.net