為最終用戶提供的功能主要由一個HTML文件和兩個ASP文件提供,它們負責接受用戶的訂閱申請以及退出郵件列表申請。 用戶的個人信息在圖1所示的登記表單中輸入,其實現文件是homepage.htm。當用戶提交表單,系統對用戶輸入數據進行必要的驗證,然后把它們保存到數據庫并提示注冊成功信息。這部分功能可以在signbook.asp文件找到,下面的代碼用于將用戶輸入數據保存到數據庫: ' 如果用戶輸入數據驗證通過則將它保存到數據庫 if blnValid = True then ' 在數據庫中插入新記錄 strSQL_Insert = "INSERT INTO Guests ( Guest_Name, Guest_Email, " & _ " Mail_List, Guest_Comment )" & _ " VALUES ('" & strName & "', '" & strEmail & _ "', '" & blnMailList & "', '" & strComments & "');" Set oConn=Server.CreateObject("ADODB.Connection") oConn.Open strDSNPath On error resume next oConn.Execute strSQL_Insert oConn.Close Set oConn = Nothing ' 記錄插入是否成功 if err.number < > 0 then ' 出現錯誤 strValid = ...數據庫操作錯誤提示信息,略... else '記錄插入成功 strValid = ...注冊成功提示信息,略... end if 'err.number < > 0 else '用戶輸入數據錯誤 strValid = ...用戶輸入數據錯誤提示,略... end if 'blnValid = True 這些代碼實現了面向最終用戶的第一個功能:將個人信息注冊到登記簿并將用戶加入到郵件列表。 每一個從郵件列表接收郵件的用戶可以在郵件的最后發現一個鏈接(類如http://www.mycompany.com/unsubscribe.asp),以及用戶ID和郵件帳號的提示。單擊這個鏈接可以訪問取消訂閱的unsubscribe.asp頁面,其界面如圖2所示。當用戶提供了正確的Email地址和ID號,unsubscribe.asp中的腳本修改該用戶注冊記錄的Mail_List標記,從而使得系統不再向該用戶發送郵件。下面是這部分功能的實現代碼: 【圖2 ASPMailingList_2.gif】 < % if Request.ServerVariables("REQUEST_METHOD") = "POST" then iGuestID = Request.Form("txtID") sGuestEmail = Request.Form("txtEmail") if iGuestID < > "" and sGuestEmail < > "" then '在數據庫中更新用戶記錄 strSQL_UnSubs = "UPDATE Guests SET Guests.Mail_List=" & 0 & _ " WHERE Guests.Guest_ID=" & iGuestID & _ " AND Guests.Guest_Email='" & sGuestEmail & "';" Set oConn = Server.CreateObject("ADODB.Connection") oConn.Open strDSNPath oConn.Execute strSQL_UnSubs, iUpdates on error resume next oConn.Close Set oConn = Nothing if err.number < > 0 then sError = ...SQL語句執行失敗提示信息, 略... else if iUpdates < > 0 then sError = ...取消訂閱成功提示信息,略... else sError = ...不能找到數據庫記錄提示信息,略... end if 'iUpdates < > 0 end if 'err.number < > 0 else Response.Redirect("homepage.htm") end if 'iGuestID < > "" end if 'REQUEST_METHOD = "POST" %> 執行SQL命令時提供的iUpdates變量反映了該SQL語句所影響的記錄數。如果該值為0,即可假定用戶沒有正確地輸入ID或Email地址。上述代碼實現了面向用戶的第二個功能,接下來我們要實現的是登記簿的管理功能。
|