電子商務(wù)網(wǎng)站建設(shè)第12章匯編_第1頁
電子商務(wù)網(wǎng)站建設(shè)第12章匯編_第2頁
電子商務(wù)網(wǎng)站建設(shè)第12章匯編_第3頁
電子商務(wù)網(wǎng)站建設(shè)第12章匯編_第4頁
電子商務(wù)網(wǎng)站建設(shè)第12章匯編_第5頁
已閱讀5頁,還剩88頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第12章 登錄(dn l)和密碼驗證系統(tǒng)12.1 系統(tǒng)(xtng)功能與組成12.2 數(shù)據(jù)庫設(shè)計12.3 實現(xiàn)用戶登錄功能12.4 實現(xiàn)新用戶注冊功能12.5 實現(xiàn)密碼修改功能共九十三頁除非(chfi)Web應(yīng)用程序?qū)λ械脑L問者都提供完全相同的服務(wù),否則,Web應(yīng)用程序一定要有用戶管理方面的子系統(tǒng),首先要能區(qū)分出來自不同用戶的訪問,并驗證用戶的身份并非假冒,然后才有可能對不同的用戶提供各自不同的個性化服務(wù),并進(jìn)行細(xì)致的用戶權(quán)限控制。12.1 系統(tǒng)功能(gngnng)與組成共九十三頁網(wǎng)上書店有幾類用戶,用戶通過網(wǎng)上書店選擇(xunz)想購買的書籍,管理員利用網(wǎng)上書店的產(chǎn)品目錄系統(tǒng)來維護(hù)可選的書

2、籍信息,當(dāng)然可能還存在更多類別的用戶。對于每一類用戶,他們在網(wǎng)上書店中的權(quán)限是不一樣的,用戶只能選擇(xunz)書籍,而不能修改書籍信息; 管理員只能維護(hù)書籍信息,而不應(yīng)該有查看和修改用戶購物車和訂單信息的權(quán)力。這種用戶的類別是基于用戶的訪問權(quán)限來劃分的,可以把它稱為安全組(security group),Dreamweaver 8把它稱為授權(quán)級別(authorization level)。共九十三頁有關(guān)用戶資料和授權(quán)級別的信息存儲在某個數(shù)據(jù)庫表中,一般來說,為安全起見,通常由獨(dú)立于Web應(yīng)用之外的其他應(yīng)用形式來維護(hù); 或者由Web應(yīng)用中的一個獨(dú)立的用戶數(shù)據(jù)維護(hù)子系統(tǒng)來維護(hù)。這里假設(shè)(jish

3、)已經(jīng)存在這樣一個維護(hù)用戶資料和授權(quán)級別的工具,管理員的用戶賬戶信息已經(jīng)用這個工具輸入到數(shù)據(jù)庫中。當(dāng)然,網(wǎng)上書店還應(yīng)提供未知用戶自助注冊的功能。通常,用戶登錄和密碼驗證系統(tǒng)包含一般用戶注冊功能、用戶登錄功能、用戶登錄失敗提示、密碼和賬戶信息修改功能。共九十三頁網(wǎng)上書店的整體數(shù)據(jù)庫設(shè)計如圖12-1所示。與本章密切相關(guān)的是Account表,該表用來存儲用戶名、用戶密碼、授權(quán)(shuqun)級別和用戶真實姓名。其中Username: 字段類型為“字符型”,長度為20,存放內(nèi)容為“用戶名”。Password: 字段類型為“字符型”,長度為20,存放內(nèi)容為“用戶密碼”。 Authlevel: 字段類型為

4、“字符型”,長度為10,存放內(nèi)容為“授權(quán)級別”。12.2 數(shù)據(jù)庫設(shè)計(shj)共九十三頁Name: 字段類型為“字符型”,長度為20,存放內(nèi)容(nirng)為“用戶的真實名字”。當(dāng)然,實際的網(wǎng)上書店的用戶信息會多得多,不僅僅包含這些內(nèi)容,但這樣的簡化信息已經(jīng)足夠為讀者示例。Username是惟一的,因此可以把Username定義成主鍵。共九十三頁圖12-1網(wǎng)上書店的整體(zhngt)數(shù)據(jù)庫設(shè)計示意圖共九十三頁用戶登錄是一個網(wǎng)站的應(yīng)該具備的最基本的功能,其中包括用戶名輸入、用戶密碼輸入、用戶身份驗證等功能。Dreamweaver 8提供了【用戶身份驗證】的服務(wù)器行為,利用(lyng)這個服務(wù)器行

5、為能夠方便地向結(jié)點實現(xiàn)【登錄用戶】的動態(tài)功能。12.3 實現(xiàn)用戶登錄(dn l)功能共九十三頁用戶登錄頁面是網(wǎng)上書店購書系統(tǒng)的主頁面,在書店網(wǎng)的主頁上有指向網(wǎng)上書店購書系統(tǒng)的超鏈接可指向該頁面,從開發(fā)(kif)項目的模塊化和可維護(hù)性考慮,整個網(wǎng)上書店購書部分的所有頁面,都置于本地站點的PurchaseSys子目錄下。本節(jié)將介紹如果實現(xiàn)用戶登錄功能: (1) 如何創(chuàng)建采用ASP技術(shù)的新頁面; (2) 給各種可引用的對象用統(tǒng)一的命名規(guī)則取名; (3) 如何使用【用戶身份驗證】|【登錄用戶】服務(wù)器行為。12.3.1 完成(wn chng)基本功能共九十三頁創(chuàng)建網(wǎng)站用戶登錄頁面是每個網(wǎng)站首先要完成的工

6、作,其操作步驟如下。1. 創(chuàng)建用戶登錄頁面(1) 在客戶機(jī)上,啟動Dreamweaver 8。(2) 選擇Dreamweaver 8主菜單中的【文件】|【新建】命令,打開如圖12-2所示的【新建文檔】對話框。 (3) 這一次創(chuàng)建的是動態(tài)頁面,因此在【類別】列表框中選擇【動態(tài)頁】選項,在右邊出現(xiàn)(chxin)的【動態(tài)頁】類型選項中,選擇【ASP VBScript】選項,單擊【創(chuàng)建】按鈕,就會創(chuàng)建一個新的支持采用VBScript語言的ASP技術(shù)的無標(biāo)題文檔。共九十三頁圖12-2【新建文檔】對話框共九十三頁2. 定義購書系統(tǒng)的數(shù)據(jù)庫連接(1) 為了支持訪問SQL Server上的購書系統(tǒng)數(shù)據(jù)庫,在服

7、務(wù)器端(如果服務(wù)器與開發(fā)機(jī)不分開,那么(n me)就是同一臺機(jī)器)按10.3.2節(jié)的方法定義名為PurchaseSys的系統(tǒng)DSN,將默認(rèn)數(shù)據(jù)庫指向購書系統(tǒng)數(shù)據(jù)庫,定義結(jié)束后必須測試。 (2) 用10.3.3節(jié)的方法在Dreamweaver 8中定義名為PurchaseSys的數(shù)據(jù)庫連接,定義結(jié)束后必須測試一下。共九十三頁3. 創(chuàng)建頁面布局和頁面元素(1) 在客戶機(jī)的新建的動態(tài)頁面中,加入如圖12-3所示的表單的基本元素。其中標(biāo)題和其他靜態(tài)部分都可以根據(jù)設(shè)計者自己(zj)的喜好用前面各章節(jié)描述的創(chuàng)作靜態(tài)頁面的方法來設(shè)計,使頁面美觀,可以自由發(fā)揮。表單部分是必須要有的,將用它來生成如圖12-3所

8、示動態(tài)行為。添加一個表單,表單包含的元素如表12-1所示。添加表單、表單元素和修改它們的屬性的方法。共九十三頁圖12-3帶有表單元素(yun s)的頁面共九十三頁(2) 對每個表單元素,都要定義名字,而不是接受Dreamweaver 8默認(rèn)的名字,這樣有助于用戶識別這些元素,因為在以后的步驟中會引用到這些元素。因此建議所有元素的命名采用統(tǒng)一的命名規(guī)則,以便在大規(guī)模開發(fā)中建立文檔和維護(hù)工作,例如此處采用的是匈牙利命名法。(3) 對用戶登錄頁面的頁面樣子已經(jīng)創(chuàng)建好了,先暫緩實現(xiàn)其功能,選擇主菜單中的【文件】|【保存】命令(mng lng),把這個頁面保存到PurchaseSys子目錄下,取名為in

9、dex.asp。共九十三頁4. 創(chuàng)建信息提示頁面接下來需要創(chuàng)建兩個頁面,一個頁面是用戶登錄成功后進(jìn)入的購書系統(tǒng)的功能頁面,另一個頁面是用戶登錄失敗后進(jìn)入的失敗信息提示的頁面。這兩個頁面必須在創(chuàng)建用戶登錄功能之前就創(chuàng)建,并保存在站點中。為此目的(md),分別創(chuàng)建兩個動態(tài)頁面。(1) 先創(chuàng)建一個空頁面,簡單地寫一句話,例如“這是購書系統(tǒng)的功能頁面”保存為PurchaseSysmain.asp。 (2) 然后創(chuàng)建一個如圖12-4所示的登錄失敗的信息頁面,保存為PurchaseSysillegal.asp。共九十三頁圖12-4登錄(dn l)失敗的信息頁面共九十三頁5. 實現(xiàn)用戶登錄的功能(1) 回到

10、用戶登錄頁面的編輯窗口,如果已經(jīng)關(guān)閉該窗口,那么請重新打開(d ki)該文件。 (2) 在【應(yīng)用程序】浮動面板中,選擇【服務(wù)器行為】選項卡,單擊按鈕,會出現(xiàn)如圖12-5所示的菜單,選擇【用戶身份驗證】|【登錄用戶】命令。(3) 接下來會彈出如圖12-6所示的【登錄用戶】對話框,其參數(shù)輸入方法如下: 在【從表單獲取輸入】下拉框中,選擇frmLogin表單,表示用戶登錄信息從frmLogin表單內(nèi)的元素的輸入中獲取; 在【用戶名字段】下拉框中選擇【txtUsername文本框】,表示用戶名信息從該文本框中得到。共九十三頁圖12-5【應(yīng)用程序】浮動(fdng)面板共九十三頁圖12-6【登錄(dn l

11、)用戶】對話框共九十三頁在【密碼字段】下拉框中選擇(xunz)【txtPassword文本框】,表示用戶密碼信息從該文本框中得到。 (4) 用戶登錄的實際動作是將用戶提交的用戶名、密碼信息與用戶數(shù)據(jù)庫中的用戶名、密碼信息比較。如果相同,則認(rèn)為登錄成功。如果不同,則認(rèn)為登錄失敗。接下來的對話框內(nèi)容指明的是用戶數(shù)據(jù)庫的信息。 在【使用連接驗證】下拉框中,選擇PurchaseSys數(shù)據(jù)庫連接,表示用戶數(shù)據(jù)庫通過該連接來訪問。共九十三頁在【表格】下拉框中,選擇dbo.Account數(shù)據(jù)表,在10.2節(jié)中介紹過,這是購書系統(tǒng)(xtng)的用戶賬號信息表。在【用戶名列】下拉框中,選擇Username字段,

12、因為這是用戶賬號信息表代表用戶名的字段,Web會用此字段與用戶輸入的用戶名信息進(jìn)行比較。 在【密碼列】下拉列表框中,選擇Password字段,因為這是用戶賬號信息表代表密碼的字段,Web應(yīng)用會用此字段與用戶輸入的用戶密碼信息比較。 共九十三頁(5) 接下來的2個文本框可用于指明用戶登錄頁面得到驗證結(jié)果后采取的動作,可以指明登錄成功后跳轉(zhuǎn)到哪個頁面,登錄失敗后跳轉(zhuǎn)到哪個頁面。這兩個頁面都可以通過單擊【瀏覽】按鈕直接(zhji)在本地站點中找。當(dāng)未登錄的用戶試圖訪問只有登錄后才能訪問的頁面,那個頁面可能會引導(dǎo)用戶到登錄頁面。在這種情況下,如果選擇【轉(zhuǎn)到前一個URL(如果它存在)】復(fù)選框,那么登錄成

13、功后會返回用戶試圖訪問的那個頁面。共九十三頁(6) 接下來的單選項指明了整個購書系統(tǒng)的用戶權(quán)限控制方式。因為購書系統(tǒng)用訪問級別來區(qū)分用戶和管理員的權(quán)限,因此,應(yīng)該選擇【用戶名、密碼和訪問級別】單選項來限制訪問,并且在【獲取級別自:】下拉列表框中,選擇Authlevel,因為這是Account數(shù)據(jù)表中代表訪問級別的字段,用戶的訪問級別由它決定。 (7) 單擊【確定】按鈕完成對話框的設(shè)置,回到Dreamweaver 8主畫面后,可以看到【應(yīng)用程序】浮動面板(min bn)的【服務(wù)器行為】選項卡中多了【登錄用戶】這一行為,如圖12-7所示。 共九十三頁圖12-7【服務(wù)器行為(xngwi)】選項卡共九

14、十三頁用戶登錄頁面的基本功能完成后保存。同步站點之后,測試登錄功能。打開瀏覽器,在地址欄中直接(zhji)輸入用戶登錄頁面的URL,例如: http: /PurchaseSys/index.asp。在實際的操作中把替換成當(dāng)前的服務(wù)器IP地址,例: http: /PurchaseSys/index.asp。按回車鍵確定后,會出現(xiàn)如圖12-8所示的頁面。在輸入正確的用戶名和口令后,單擊【登錄】按鈕,會跳轉(zhuǎn)到如圖12-9所示的頁面,即前面的main.asp頁面?;氐降卿洰嬅?,如果輸入不正確的登錄信息,單擊【登錄】按鈕后,會跳轉(zhuǎn)到如圖12-10所示的畫面,即illegal.asp頁面。共九十三頁圖12

15、-8用戶(yngh)登錄頁面共九十三頁圖12-9登錄成功的頁面(y min)提示共九十三頁圖12-10登錄(dn l)失敗的頁面提示共九十三頁本節(jié)中將介紹如何利用代碼視圖來理解Dreamweaver 8工具。到目前為止,并沒有編過一行程序,寫過一行代碼,一個簡單的Web應(yīng)用的功能已經(jīng)完成了。實際上是Dreamweaver 8完成了編寫程序的工作。下面介紹它剛才自動完成的那些工作。如果讀者在對用戶登錄頁面添加服務(wù)器行為的前后都按了文檔工具欄中的【代碼視圖】按鈕,來查看這個頁面的HTML源代碼,添加源代碼請參見(cnjin)教材P224-226頁。12.3.2 Dreamweaver 8行為(xn

16、gwi)分析共九十三頁通過比較,不難發(fā)現(xiàn),新的源代碼多出了用括起來的一大段代碼,并且把表單的ACTION屬性(shxng)改成了,這就是Dreamweaver 8完成的主要工作。用括起來的代碼都是用VBScript編程語言編寫的服務(wù)器端腳本程序。現(xiàn)在不要求馬上能夠看懂這些代碼,但希望讀者了解Web應(yīng)用程序開發(fā)的實質(zhì),最終還是要?dú)w到編寫程序代碼上來,只不過Dreamweaver 8能夠幫助開發(fā)者自動生成完成簡單功能的代碼。共九十三頁第9章介紹的ASP的Session對象用于存儲特定的用戶會話所需的信息。當(dāng)用戶在應(yīng)用程序的頁之間跳轉(zhuǎn)時,存儲在 Session 對象中的變量不會丟失,而是在整個用戶會

17、話中一直存在下去。Session對象所存儲的所有變量,在Dreamweaver 8中都稱作階段變量。在本節(jié)中將介紹如何定義階段變量和如何引用階段變量。下面將利用(lyng)上述代碼中包含的有用信息,來引導(dǎo)讀者把登錄后進(jìn)入的main.asp變得更加友好,并借此講解階段變量的應(yīng)用。12.3.3 階段(jidun)變量的應(yīng)用共九十三頁在Dreamweaver 8自動(zdng)添加的源代碼中,可以看到一句Session(MM_Username) = MM_valUsername,這是Dreamweaver 8讓這個用戶登錄頁面在登錄成功后,自動地把用戶輸入的用戶名,保存到名為MM_Username的

18、階段變量中,以便在用戶進(jìn)入網(wǎng)上書店的其他動態(tài)頁面時,就可以使用這個階段變量存儲的用戶名的信息。用Session(“階段變量名”) = 形式的VBScript語句可以給階段變量賦值。怎樣使用這個階段變量呢?其操作步驟如下。共九十三頁(1) 在【應(yīng)用程序】浮動(fdng)面板中,選擇【綁定】選項卡,單擊按鈕,會出現(xiàn)如圖12-11所示的菜單,選擇【階段變量】命令。 圖12-11添加【階段變量】的菜單共九十三頁(2) 在出現(xiàn)的【階段(jidun)變量】對話框里,填入用戶名對應(yīng)的階段(jidun)變量名MM_Username,如圖12-12所示。 (3) 單擊【確定】按鈕后,在【綁定】選項卡中可以看到新

19、定義的階段變量,如圖12-13所示。 這樣定義之后,就可以在其他頁面中使用這個階段變量了,在編輯其他動態(tài)頁面時,將都可以在【綁定】選項卡中看到這個階段變量。接下來就可以把main.asp變得更加友好,操作方法如下: 共九十三頁圖12-12【階段(jidun)變量】對話框共九十三頁圖12-13新定義(dngy)的階段變量共九十三頁(1) 打開main.asp; (2) 在頁首加入一句話“您好!”,然后從【綁定】選項卡中找到MM_Username階段變量,將它拖曳(tuy)到“您好!”前面,結(jié)果如圖12-14所示。共九十三頁圖12-14添加階段變量(binling)的網(wǎng)頁共九十三頁要點提示:在【應(yīng)

20、用程序】浮動面板的【綁定】選項卡中的所有項都可以稱作動態(tài)(dngti)元素。對于這些動態(tài)(dngti)元素都可以直接把它們拖曳到動態(tài)(dngti)頁面上希望出現(xiàn)的位置。這樣在實際訪問該頁面時,對應(yīng)位置就會顯示動態(tài)(dngti)的內(nèi)容(來自數(shù)據(jù)庫或變量)。同步站點后,可以測試一下效果。正確登錄后,用戶將看到親切的問候語,如圖12-15所示。共九十三頁圖12-15階段變量(binling)的應(yīng)用網(wǎng)頁共九十三頁幾乎每個網(wǎng)站都有新用戶注冊的功能,新用戶按要求將自己(zj)的有關(guān)信息輸入后提交給服務(wù)器,由服務(wù)器端的應(yīng)用程序?qū)⑦@些信息添加到用戶數(shù)據(jù)庫中,通過新用戶注冊功能可以讓用戶自己(zj)生成用戶賬戶

21、。12.4 實現(xiàn)(shxin)新用戶注冊功能共九十三頁在本節(jié)中將介紹如何生成添加表記錄的Web頁面以及如何應(yīng)用【插入記錄】服務(wù)器行為實現(xiàn)(shxin)新用戶注冊的功能。下面將介紹如何完成這一功能。先創(chuàng)建一個新用戶注冊頁面,操作步驟如下。 1. 創(chuàng)建新用戶注冊頁面創(chuàng)建一個新的支持ASP VBScript的動態(tài)頁面。 2. 定義購書系統(tǒng)的數(shù)據(jù)庫連接由于同一應(yīng)用可以共享數(shù)據(jù)庫連接,因此這個頁面仍然可以使用PurchaseSys數(shù)據(jù)庫連接,不需要另外定義數(shù)據(jù)庫連接。 12.4.1 插入(ch r)記錄的服務(wù)器行為共九十三頁3. 創(chuàng)建頁面布局和頁面元素(1) 在新頁面中,加入如圖12-16所示的網(wǎng)頁元素

22、,其中標(biāo)題(biot)和其他靜態(tài)部分都可以根據(jù)自己的喜好用前面各章節(jié)描述的創(chuàng)作靜態(tài)頁面的方法來設(shè)計,使頁面美觀,可以自由發(fā)揮。表單部分是必須有的,將用它來生成動態(tài)行為,如圖12-16所示,添加一個表單,表單包含的元素如表12-2所示。 表12-2見書279頁共九十三頁圖12-16創(chuàng)建(chungjin)新用戶注冊頁面共九十三頁(2) 選擇主菜單中的【文件】|【保存】命令,把這個頁面保存到PurchaseSys子目錄下,取名為register.asp。4. 創(chuàng)建信息提示(tsh)頁面接下來創(chuàng)建一個頁面,這個頁面是注冊新用戶成功后進(jìn)入的成功信息提示頁面,為此目的,創(chuàng)建一個如圖12-17所示的頁面,

23、保存為PurchaseSysregistersuccess.asp。共九十三頁圖12-17注冊成功(chnggng)的頁面共九十三頁5. 實現(xiàn)注冊新用戶功能(1) 注冊新用戶,實際上是要對Account用戶賬戶數(shù)據(jù)表添加一條記錄,這將用到【插入記錄】服務(wù)器行為。需要在【服務(wù)器行為】選項卡中添加一個【插入記錄】的服務(wù)器行為,回到register.asp頁面的編輯窗口。如果已經(jīng)關(guān)閉該窗口,那么請重新打開(d ki)該文件; 在【添加】菜單里選擇【插入記錄】命令后,將看到如圖12-17所示的【插入記錄】對話框。共九十三頁圖12-18【插入(ch r)記錄】對話框共九十三頁(2) 在對話框上半部分設(shè)置

24、如下參數(shù): 在【連接】下拉列表框里選擇PurchaseSys數(shù)據(jù)庫連接; 在【插入到表格】下拉列表框中選擇dbo.Account,表示要對這個數(shù)據(jù)表添加記錄; 在【插入后,轉(zhuǎn)到】文本框中輸入更新以后轉(zhuǎn)到哪個頁面,可以單擊【瀏覽(li ln)】按鈕直接從本地站點中選取頁面。共九十三頁(3) 下半部分的選項,決定了插入記錄時各個需要更新的字段(即Dreamweaver所說的列)的取值,可按如下方法設(shè)置參數(shù): 在【獲取值自】下拉列表框中選擇frmNewUser表單,表示字段的新值來自該表單元素(yun s)的輸入值; 在【表單元素】列表框中,列出了表單的各個元素和每個元素將更新哪一個字段,選中txt

25、Username后,在下面的【列】下拉列表框中選擇Username,表示將插入到dbo.Account表中的新紀(jì)錄的Password字段的值來自txtUsername的值; 共九十三頁在【提交為】下拉框中,選擇【文本】選項,表示插入時將該值的類型理解為文本類型(使這個值寫成類似“2002/10/27”的日期類型值的形式); 類似地完成其他每個字段的對應(yīng)關(guān)系。注意: 如果沒有hidAuthlevel表單元素,Authlevel字段就找不到對應(yīng)的值了。(4) 單擊【確定】按鈕完成服務(wù)器行為定義,新用戶注冊功能便完成了,當(dāng)然為了訪問這一功能,須先在index.asp中加一個指向該頁面(y min)的

26、超鏈接。同步站點后,就可以測試一下新用戶注冊的功能了。在用戶登錄頁面,選擇注冊新用戶,進(jìn)入新用戶注冊頁面,如圖12-19所示。共九十三頁圖12-19新用戶注冊頁面(y min)共九十三頁在輸入必要的用戶信息后,單擊【注冊】按鈕后,可以看到如圖12-20所示的頁面(y min)。 如果回到登錄頁面時,會發(fā)現(xiàn)使用新的用戶賬戶能成功登錄。圖12-20注冊成功頁面共九十三頁簡單地插入記錄肯定有問題,用戶選擇的用戶名很可能已經(jīng)存在賬戶表中,已被別的人注冊過了。所以在插入記錄時,應(yīng)該檢查輸入的用戶名是否已經(jīng)存在。在本節(jié)中將介紹如何應(yīng)用【用戶身份驗證】來【檢查新用戶名】的服務(wù)器行為。這些問題可通過【檢查新用

27、戶名】服務(wù)器行為來解決(jiju),其操作步驟如下。12.4.2 檢查新用戶(yngh)的服務(wù)器行為共九十三頁1. 回到register.asp頁面回到register.asp頁面的編輯窗口,如果您已經(jīng)關(guān)閉該窗口,那么請重新打開該文件。 2. 創(chuàng)建信息(xnx)提示頁面需要創(chuàng)建一個頁面,這個頁面是在重復(fù)注冊新用戶名時顯示的出錯提示頁面。為此目的,創(chuàng)建一個如圖12-21所示的頁面,保存為PurchaseSysregisterexist.asp。3. 實現(xiàn)檢查用戶名的功能共九十三頁圖12-21生成(shn chn)出錯提示頁面共九十三頁(1) 在“應(yīng)用程序”浮動面板中,選擇【服務(wù)器行為】選項卡,單

28、擊按鈕,選擇【用戶身份驗證】 | 【檢查新用戶名】命令,將看到如圖12-22所示的對話框,在【用戶名字段】選擇代表用戶名的表單元素; 在【如果已存在,則轉(zhuǎn)到】輸入框中輸入文件名,或單擊【瀏覽】按鈕直接在本地站點中選擇用戶名已存在的信息頁面。(2) 單擊【確定】按鈕,完成服務(wù)器行為定義。同步(tngb)站點后,就可以測試一下效果。若輸入已經(jīng)存在的用戶名,注冊時,則會出現(xiàn)如圖12-23所示的信息。共九十三頁圖12-22【檢查(jinch)新用戶名】對話框圖12-23注冊時提示信息共九十三頁一個允許新用戶注冊的網(wǎng)站,密碼和賬戶修改便是這個網(wǎng)站應(yīng)該具備的最基本的功能。實現(xiàn)這個功能實際上就是完成(wn

29、chng)對用戶數(shù)據(jù)庫中的信息進(jìn)行修改。12.5 實現(xiàn)密碼(m m)修改功能共九十三頁為了讓讀者了解實現(xiàn)密碼和賬戶修改的功能,在本節(jié)中將介紹如何進(jìn)行用戶權(quán)限限制,如何篩選記錄集和如何應(yīng)用【更新記錄】服務(wù)器行為等知識。創(chuàng)建用戶密碼修改頁面,創(chuàng)建這個頁面的步驟如下。 1. 創(chuàng)建用戶密碼修改頁面先創(chuàng)建一個新的支持ASP VBScript的動態(tài)頁面。 2. 定義購書系統(tǒng)的數(shù)據(jù)庫連接由于同一應(yīng)用可以(ky)共享數(shù)據(jù)庫連接,因此這個頁面仍然可以(ky)使用PurchaseSys數(shù)據(jù)庫連接,不需要另外定義。12.5.1 篩選(shixun)記錄集與更新記錄的服務(wù)器行為共九十三頁3. 創(chuàng)建頁面布局和頁面元素(

30、1) 在新頁面中,加入如圖12-24所示的基本元素,其中標(biāo)題和其他(qt)靜態(tài)部分,都可以根據(jù)設(shè)計者自己的喜好用前面各章節(jié)描述的創(chuàng)作靜態(tài)頁面的方法來設(shè)計,使頁面美觀,可以自由發(fā)揮。與前一個例子一樣,表單部分是必須有的,將用它來生成動態(tài)行為,如圖12-24所示,添加一個表單,表單包含的元素如表12-3所示。 表12-3表單元素的屬性和說明見書235頁共九十三頁圖12-24用戶賬戶密碼修改(xigi)頁面共九十三頁(2) 選擇主菜單中的【文件】|【保存】命令,把這個頁面保存到PurchaseSys子目錄下,取名為modifyaccount.asp。由于本頁面是用戶登錄后才能訪問的,因此不需要讓用戶

31、在此輸入舊密碼。4. 創(chuàng)建信息(xnx)提示頁面需要創(chuàng)建一個頁面,這個頁面是修改用戶密碼和賬戶成功后的信息提示頁面,為此目的,創(chuàng)建一個如圖12-25所示的成功信息頁面,保存為PurchaseSysmodifysuccess.asp。共九十三頁圖12-25用戶注冊成功(chnggng)提示頁面共九十三頁5. 實現(xiàn)修改密碼和賬戶的功能在modifyaccount.asp中修改用戶(yngh)密碼,實際上是要對Account用戶賬戶數(shù)據(jù)表中的某一條記錄,即某一個用戶的信息進(jìn)行更新,其中更新的僅是這條記錄的某些允許用戶修改的字段,包括Password字段。 為實現(xiàn)更新功能,必須定義對這一條用戶賬戶記錄

32、的引用,即定義一個僅含一條記錄的記錄集; 在前面的章節(jié)中曾經(jīng)介紹過基本記錄集的創(chuàng)建,這里將介紹如何利用篩選功能。 共九十三頁(1) 在【應(yīng)用程序】浮動面板中,選擇【綁定】選項卡,單擊按鈕,選擇【記錄集】命令,可見如圖12-26所示的【記錄集】對話框,其各項參數(shù)的輸入方法如下(rxi): 在【名稱】文本框中輸入給記錄取的名字。 在【連接】下拉列表框中選擇要使用的數(shù)據(jù)庫連接。在【表格】中選取dbo.Account表。 在【列】選項組中選擇默認(rèn)的【全部】單選項。 共九十三頁在【篩選】下拉列表框中選擇Username,表示條件表達(dá)式的左邊是Username字段,在右邊的比較符號里選擇【=】,表示要進(jìn)行

33、值是否(sh fu)相等的比較,在Username下方的下拉列表框中選擇【階段變量】,表示條件表達(dá)式的右邊值的類型是階段變量,在右邊的文本框中輸入代表當(dāng)前用戶名的階段變量名: MM_Username。這個步驟使Username=MM_Username成為一個表達(dá)式,表示記錄集包含的記錄必須滿足用戶名字段等于MM_Username的值,對于這個例子來說,返回的記錄集里僅包含當(dāng)前用戶的用戶賬號記錄。 共九十三頁圖12-26【記錄集】對話框共九十三頁(2) 單擊【測試】按鈕,可以測試記錄集定義的正確性,由于此時頁面尚未運(yùn)行,MM_Username并沒有值,因此會彈出如圖12-27所示的對話框,要求(

34、yoqi)提供一個值用于測試。 圖12-27【請?zhí)峁┮粋€測試值】對話框共九十三頁(3) 單擊【確定】按鈕后,若記錄集定義正確,可以看到如圖12-28所示的頁面,其中列出了記錄集包含的記錄內(nèi)容。 (4) 測試完后,單擊【確定】按鈕完成(wn chng)記錄集定義后,在【綁定】選項卡中可以看到如圖12-29所示的剛剛定義好的記錄集。共九十三頁圖12-28測試(csh)SQL指令共九十三頁圖12-29新定義(dngy)的記錄集共九十三頁(5) 生成密碼和賬戶修改的功能,這需要在【服務(wù)器行為】選項卡中添加一個【更新記錄】,在【添加】菜單里選擇【更新記錄】命令后,將看到如圖12-30 所示的【更新記錄】

35、對話框,其各項參數(shù)輸入方法如下: 在【連接】下拉列表框里選擇PurchaseSys數(shù)據(jù)庫連接; 在【要更新的表格】下拉列表框中選擇dbo.Account,表示要對這個數(shù)據(jù)表中的記錄做更新; 在【選取(xunq)記錄自】下拉列表框中選擇rstThisAccount記錄集,表示要更新的記錄范圍由這個記錄集選定;共九十三頁圖12-30【更新(gngxn)記錄】對話框共九十三頁在【惟一鍵列】下拉列表框中選擇Username,因為這是一個(y )可以惟一確定一條記錄的字段; 在【在更新后,轉(zhuǎn)到】文本框中輸入更新以后轉(zhuǎn)到哪個頁面,可以單擊【瀏覽】按鈕直接從本地站點中選取頁面。 對話框下半部分的選項,決定了

36、更新時各需更新字段(即Dreamweaver所說的列)的取值:在【獲取值自】下拉列表框中選擇frmModifyPassword表單,表示字段的新值來自該表單元素的輸入值; 在【表單元素】列表框中,列出了表單的各個元素和每個元素將更新哪一個字段,選擇好對應(yīng)關(guān)系。 共九十三頁(6) 單擊【確定(qudng)】按鈕,完成服務(wù)器行為定義,完成了密碼和賬戶信息修改功能,當(dāng)然,為了訪問這一功能,須先在mainmen.asp中加一個指向修改頁面的超鏈接。同步站點后,可以測試一下密碼和賬戶修改的功能。正常登錄后,進(jìn)入密碼和賬戶修改頁面,如圖12-31所示。 在輸入新信息后,單擊【確認(rèn)修改】按鈕后,可以看到如圖

37、12-32所示的頁面。如果回到登錄頁,會發(fā)現(xiàn)使用舊密碼已經(jīng)不能成功登錄,只有用新密碼才能成功登錄。共九十三頁圖12-31密碼修改(xigi)頁面共九十三頁圖12-32用戶(yngh)信息修改成功頁面共九十三頁本節(jié)中將介紹如何應(yīng)用【用戶(yngh)身份驗證】|【限制對頁的訪問】服務(wù)器行為。這個密碼修改頁面存在兩個問題。密碼修改頁面存在的第一個問題是:不經(jīng)過登錄,仍然可以通過指定完整的URL來訪問這個頁面。這是因為對于這個頁面,沒有做用戶權(quán)限的限制,但這個頁面恰恰應(yīng)該是用戶登錄后才能夠訪問的。那么,如何對一個動態(tài)頁面加上用戶權(quán)限的限制(即只有登錄后的具有一定訪問級別的用戶才能訪問該頁面)呢?操作步

38、驟如下。 12.5.2 限制(xinzh)對頁的訪問的服務(wù)器行為 共九十三頁(1) 打開用戶密碼修改頁面,在【應(yīng)用程序】浮動面板的【服務(wù)器行為】選項卡中選擇【添加】菜單的【用戶身份驗證】|【限制對頁的訪問】命令。(2) 如圖12-33所示的對話框,在【基于以下內(nèi)容進(jìn)行限制】單選按鈕組中選中【用戶名和密碼】單選項,因為對密碼修改頁面只需要檢查用戶名和密碼,不需要檢查訪問級別,所有訪問級別的用戶都要使用該頁,以后會講解如何使用訪問級別。在【如果訪問被拒絕,則轉(zhuǎn)到】文本框中輸入訪問拒絕時,進(jìn)入(jnr)哪個頁面??梢詥螕簟緸g覽】按鈕直接在本地站點選取頁面,這里選擇的是登錄頁面。共九十三頁圖12-33

39、【限制(xinzh)對頁的訪問】對話框共九十三頁(3) 單擊【確定】按鈕完成設(shè)置。同步站點后進(jìn)行測試(csh)。直接輸入完整的URL后,用戶被引導(dǎo)到登錄頁面,如圖12-34所示。正確登錄后,頁面回到了剛才試圖訪問的URL,即用戶密碼修改頁面,而不是通常登錄后進(jìn)入的main.asp。還記得生成用戶登錄功能時的一個選項嗎?想一想是哪個選項起了作用?共九十三頁圖12-34用戶(yngh)登錄頁面共九十三頁本節(jié)介紹如何通過修改自動生成的代碼來擴(kuò)展功能。密碼修改頁面存在的第二個問題是: 雖然密碼修改頁面要求用戶輸入兩遍密碼,但是,實際上到目前為止,該頁面并沒有利用(lyng)表單中的第二個輸入值,并沒有

40、在更新用戶賬號信息時先核對兩遍密碼輸入是否一致。這是因為Dreamweaver 8并沒有專門針對用戶密碼修改提供自動生成程序代碼的功能,讀者可以看到,這里用來實現(xiàn)密碼修改功能的方法,實際上是借用了Dreamweaver 8的【更新記錄】的服務(wù)器行為工具。12.5.3 兩次密碼(m m)輸入核對共九十三頁在【更新記錄】無法完全滿足要求的情況下,只能修改自動生成的程序代碼,來滿足開發(fā)者的要求。實際上不需要對自動生成的程序做大的改動,只要(zhyo)稍作變動就可以滿足需要,操作步驟如下。 (1) 將編輯窗口切換為【代碼視圖】模式。 (2) 找到以注釋“ * Update Record: construct a sql update statement and execute it”為開頭的代碼段; 這段代碼是Dreamweaver 8自動生成用于在用戶單擊表單的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論