一個基於ASP的標題廣告管理系統(二) - 中國WEB開發者網絡 (http://www.webasp.net) -- 技術教程 (http://www.webasp.net/article/) --- 一個基於ASP的標題廣告管理系統(二) (http://www.webasp.net/article/1/345.htm) |
| -- 作者:未知 -- 發佈日期: 2003-04-14 |
| 二、管理功能
管理部分共有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),此處略。 |
| webasp.net |