二、管理功能
管理部分共有12個asp文件,這些腳本的主要功能分別如下:
BannerAdminLogin.asp:管理功能的登錄頁面。默認的用戶名稱是“ADMIN USER”,密碼是“PASSWORD”。 CheckBannerAdministrationPassword.asp:檢查使用管理功能的用戶的密碼。 NotLoggedIn.asp:“沒有登錄”提示頁面,如果在登錄之前訪問管理頁面,則顯示該頁面。 BannerAdministration.asp:這是管理功能的主界面,列出了所有的廣告,并提供兩個按鈕。這兩個按鈕分別用于新增廣告和新增廣告客戶。點擊廣告客戶名字可以編輯該廣告客戶,點擊廣告文本可以編輯該廣告。 Advertisement.asp:輸入新廣告的信息,或編輯當前廣告信息,或調用DeleteAdvertisement.asp刪除當前廣告。 Advertiser.asp:輸入新廣告客戶的信息,或編輯當前廣告客戶信息,或調用 DeleteAdvertiser.asp刪除當前廣告客戶。 AddAdvertisement.asp:新增廣告記錄,從Advertisement.asp表單獲取信息,存儲到數據庫。 AddAdvertiser.asp:新增廣告客戶記錄,從Advertiser.asp表單獲取信息,存儲到數據庫。 UpdateAdvertisement.asp:從Advertisement.asp表單獲取信息,更新數據庫中與當前廣告具有相同AdvertisementID的記錄。 UpdateAdvertiser.asp:獲取Advertiser.asp表單信息,更新數據庫中與當前廣告客戶具有相同AdvertiserID的記錄。 DeleteAdvertisement.asp:根據當前選中廣告的AdvertisementID,刪除數據庫中的相應記錄。注意:刪除并返回管理主界面后有時需要重新刷新。 DeleteAdvertiser.asp:根據當前選中廣告客戶的AdvertiserID,刪除相應的數據庫記錄。
【圖1】
完整代碼請從本文后面下載。假設所有文件均在inetpubScripts目錄下,則登錄管理功能的URL為:http://localhost/scripts/BannerAdminLogin.asp。所有其他功能均可從此開始訪問。
接下來我們介紹管理功能腳本中的一些關鍵問題。
㈠安全
大多數執行管理功能的頁面受密碼保護,這些頁面在執行其任務之前都會檢查一個SESSION變量以確認用戶已經成功地登錄。檢查代碼如下所示:
' 檢查用戶是否已經登錄 If SESSION( "LoggedIn" ) <> true Then Response.Redirect( "NotLoggedIn.asp" ) End If 這里所采用的安全機制較為簡單,更多的說明參見《在ASP應用中驗證用戶身份》。
㈡列出所有的廣告
BannerAdministration.asp頁面啟動時會列出數據庫中的所有廣告記錄。這部分功能通過一個簡單的查詢和一個記錄集對象完成,如下所示:
'列出數據庫中的所有廣告 Set cn = Server.CreateObject( "ADODB.Connection" ) cn.Open "BannerBuddy" Set rs = Server.CreateObject( "ADODB.RECORDSET" ) Set rs2 = Server.CreateObject( "ADODB.RECORDSET" ) strSql = "SELECT * FROM Advertisement" rs.Open strSql, cn strCRLF = Chr( 13 ) + Chr( 10 ) While not rs.EOF and not rs.BOF ' 根據廣告客戶編號(AdvertiserID)查找客戶名稱 strSql = "SELECT Name From Advertiser where AdvertiserID = " + _ CStr( rs.Fields( "AdvertiserID" ) ) rs2.Open strSql, cn strAdvertiser = "" If not rs2.EOF and not rs2.BOF Then strAdvertiser = rs2.Fields( "Name" ) End If Response.Write( "</tr>" + strCRLF ) rs2.Close rs.MoveNext Wend 系統假定數據庫db.mdb的ODBC DSN為BannerBuddy,因此在運行程序之前必需設置好這個DSN。有關數據庫連接和操作的更多說明,參見《ASP應用中數據庫記錄的選取與過濾》。
在廣告清單中,單擊廣告客戶名字可以編輯該廣告客戶的信息,單擊“文本/圖形”欄中的文本可以編輯該廣告的信息,單擊圖片鏈接可以查看圖片。
㈢新增、修改廣告和廣告客戶
AddAdvertisement.asp和AddAdvertiser.asp這兩個腳本的任務是獲取提交給它們的表單數據,創建廣告客戶或廣告數據庫記錄。下面的代碼用于新增廣告記錄,新增廣告客戶(AddAdvertiser.asp)的代碼也類似,此處略。
' 連接到數據庫,創建記錄集對象rs,略... strStartDate = Request.Form( "StartMonth" ) + "/" + _ Request.Form( "StartDay" ) + "/" + _ Request.Form( "Startyear" ) strEndDate = Request.Form( "EndMonth" ) + "/" + _ Request.Form( "EndDay" ) + "/" + _ Request.Form( "Endyear" ) nStatus = 1 If UCase( Request.Form( "Status" ) ) = "INACTIVE" Then nStatus = 0 End If ' 根據所選擇的廣告客戶名字,獲取其編號 nAdvertiserID = 1 strSql = "select AdvertiserID from Advertiser where Name = '" + _ Request.Form( "Advertiser" ) + "'" rs.Open strSql, cn If not rs.EOF and not rs.BOF Then nAdvertiserID = rs.Fields( "AdvertiserID" ) If IsNull( nAdvertiserID ) Then nAdvertiserID = 1 End If End If ' 生成一個新的廣告編號 nAdvertisementID = 1 strSql = "select AdID=Max( AdID ) from Advertisement" rs.Close rs.Open strSql, cn If not rs.EOF and not rs.BOF Then nAdvertisementID = rs.Fields( "AdID" ) + 1 If IsNull( nAdvertisementID ) Then nAdvertisementID = 1 End If End If ' 插入新廣告記錄的SQL命令 strSql = "insert into Advertisement " + _ "( AdvertiserID, Status, ImageURL, " + _ "ImageWidth, ImageHeight, Link, " + _ "AltText, Weight, StartDate, EndDate, " + _ "ViewLimit, ClicksLimit, AdID ) Values ( " strSql = strSql + CStr( nAdvertiserID ) + ", " ' 加上其他字段值,略... strSql = strSql + CStr( nAdvertisementID ) + " )" rs.Close rs.Open strSql, cn 修改廣告、廣告客戶信息分別由UpdateAdvertiser.asp和UpdateAdvertiser.asp完成,這兩個腳本和AddAdvertisement.asp、AddAdvertiser.asp非常相似,只是把增加記錄操作改成了修改記錄。刪除廣告、廣告客戶的腳本很簡單(分別為DeleteAdvertisement.asp和DeleteAdvertiser.asp),此處略。 (出處:熱點網絡)
|