ASP與資料庫運用:密碼驗證

來源:互聯網
上載者:User
資料|資料庫 文/龍兒 (2000/10/30 )

  Microsoft 的大作ASP(Active Server Pages)以其易學易用、擴充性好、功能多而強等優點正掀起一場新的web編程革命(從嚴格意義上講,編寫asp並不是編程),它以令人吃驚的發展和普及速度大有取代由perl等語言編寫的CGI(Common Gateway Interface,通用閘道介面) 的勢頭。基於web page方式的web管理員模式已經成為潮流,看看現在的網管們,有誰不會asp的編寫呢?要管理?那你可能就要用到我這裡要說的“密碼驗證”了。簡單地說,密碼驗證就是首先判斷你是不是有登入許可權,如果有,就繼續,否則,哼哼……。什嗎?你到現在還不知道ASP是什麼東東?“該程式執行了非法操作,即將被關閉。如仍有問題,請與程式供應商聯絡。”----------系統語

  下面,我們就來看看實現密碼驗證的ASP需要些什麼吧。

  一、 ASP運行環境:

  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中很多代碼仍是需要我們手工編寫大量代碼的,用專用的網頁製作軟體只不過是偷一丁點懶而已。

  三、 用哪一種資料庫作為儲存使用者資料(使用者名稱及密碼)的資料庫呢?

  SQL Server、Microsoft Access 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 & ";dbq=" & server.mappath("psd.mdb") '用指定的資料庫驅動程式開啟資料庫,並指定資料路徑

  sql="select*from psd where id='" & id & "' and psd='" & psd & "'" ‘定義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"使用者名稱或密碼錯誤!<br>請檢查你的使用者名稱及密碼然後再試一次!" ‘如果使用者已經輸入完整資訊,但輸入錯誤也返回出錯資訊。

  else session("passed")=true

  end if

  if not session("passed") then%> ‘使用者輸入的資訊完全正確並驗證通過,以下開始編寫html代碼,做一個使用者登入介面。

  <html>

  <head>

  <meta http-equiv="Content-Type" content="text/html; charset=gb2312">

  <title>請您輸入您的使用者名稱及密碼!</title>

  </head>

  <body bgcolor="#000000" text="#FFFFFF">

  <p align="center"> 

  <p align="center"> </p>

  <p align="center"><b><font face="黑體" size="6">使用者登入首頁</font></b></p>

  <p align="center"> </p>

  <form method="POST" action="<%=request.serverVariables("psd.mdb")%>">

  <table border="0" width="100%" cellspacing="0" cellpadding="0">

  <tr>

  <td width="41%" align="right">使用者名稱:</td>

  <td width="59%"><input type="text" name="id" size="20" value="<%=id%>"></td>

  </tr>

  <tr>



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。