国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

ASP環境下郵件列表功能的實現 (三)(推薦)

2019-11-18 22:43:23
字體:
來源:轉載
供稿:網友
   在訪問管理頁面之前必須經過身份驗證。本實現中我們用圖3所示的secure.htm頁面供管理員輸入身份識別碼,若用戶輸入值非空則用Cookies來保存它。執行管理任務的頁面是admin.asp,每當用戶試圖訪問這個頁面,下面的代碼將檢查這個Cookies與用戶身份識別碼(這里是123456)是否匹配,如匹配失敗則將該用戶重定向到輸入身份識別碼的secure.htm頁面。

 < %
  strPW1 = Request.Form("txtPW")
  if strPW1 < > "" then
Response.Cookies("PassWord") = strPW1
  end if 'strPW1 < > ""
  strPW2 = Request.Cookies("PassWord")
  If strPW2 < > "123456" Then
Response.Redirect("secure.htm")
  End if 'strPW2 < > "123456"
 %>

   一旦管理員的身份驗證通過,他們能夠通過Admin.asp執行的操作包括:

查看Guests表中的所有記錄
編輯或
刪除指定的記錄
向所有郵件列表中的用戶發送郵件
   管理頁面admin.asp如圖4所示。顯示Guests表的記錄時先從數據庫提取這些記錄,然后使用一個For Each ... Next結構遍歷記錄集的字段集合,提取字段名字并設置表格的表頭。在這個頁面中我們不再顯示Guest_ID字段,但每個用戶記錄的前面都加上了一個“刪除”和“編輯”功能的鏈接。用戶名字字段Guest_Name與郵件字段Guest_Email被轉換為mailto鏈接,單擊名字可以單獨向該用戶發送郵件。其它要格式化的字段還包括是否發送郵件(Mail_List)以及用戶留言(Guest_Comment)。生成表頭的代碼為:



 ' 從數據庫選取記錄
 strSQL_Select = "SELECT Guests.Guest_ID, Guests.Guest_Email, " & _
 " Guests.Guest_Name, Guests.Mail_List, " & _
  " Guests.Guest_Comment, Guests.Sign_Date " & _
  " FROM Guests ORDER BY Guests.Guest_Name; "
 Set oConn=Server.CreateObject("ADODB.Connection")
 oConn.Open strDSNPath
 Set rsGbook = oConn.Execute(strSQL_Select)
 if rsGbook.BOF = True and rsGbook.EOF = True then
  ...數據庫空提示,略...
  else
  rsGbook.MoveFirst
  %>
  < table BORDER="0" cellpadding="5" cellspacing="2" align="center">
  < tr>
  < % for each Head in rsGbook.Fields
  if Head.Name = "Guest_ID" then %>
  ..."刪除"與"編輯"表頭,略...
  < % else %>
  < td VALIGN="middle" align="center">< font face=Arial size=2>
  < % select case Head.Name
  case "Guest_Name"
  Response.Write "名 字"
  case "Mail_List"
  Response.Write "郵件列表"
  case "Guest_Comment"
  Response.Write "留 言"
  end select
  %>
  < /font>< HR>< /td>
  < % end if 'Head.Name = "Guest_ID"
  next %>
  < /tr>

   為在表格的其余位置顯示用戶注冊記錄,我們用兩個嵌套的循環遍歷所有記錄的所有字段,即在一個Do While ...循環里面嵌入一個For Each ... Next 循環。數據的格式化工作放在For Each ... Next循環內。其實現代碼類如:

 < % Do While Not rsGbook.EOF %>
  < tr>
 < % For Each Field in rsGbook.Fields
  if Field.Name = "Guest_ID" then %>
  < td VALIGN="middle" ALIGN="center">
  ...刪除功能的鏈接,略...
  < /td>
  < td VALIGN="middle" ALIGN="center">
  ...編輯功能的鏈接,略...
  < /td>
 < % else %>
  < td VALIGN="middle" align="center">
 < % if isNull(Field) then
  Response.Write " "
  else
  if Field.Name = "Guest_Name" then
  Response.Write ...用戶名字的mailto鏈接,略...
  elseif Field.Name = "Mail_List" then
  ...輸出"是"或"否",略...
  elseif Field.Name = "Guest_Comment" then
  ...輸出用戶留言,略...
  end if 'Field.Name
  end if 'isNull(Field)%>
  < /td>
 < % end if 'Field.Name = "Guest_ID"
  Next
  rsGbook.MoveNext %>
  < /tr>
 < % loop %>
 < /table>

   現在我們已經把數據庫記錄顯示在表格中了。單擊表格中的圖形鏈接可以訪問edit_record.asp和delete_record.asp,這兩個文件分別提供記錄的編輯和刪除功能。首先我們來看看刪除功能的實現:

 < %
 iGuestID = Request.Querystring("ID")
 if iGuestID < > "" then
  '從數據庫刪除由ID標識的記錄
  strSQL_Delete = "DELETE FROM Guests " & _
  " WHERE Guest_ID=" & iGuestID
  Set oConn = Server.CreateObject("ADODB.Connection")
  oConn.Open strDSNPath
  on error resume next
  oConn.Execute strSQL_Delete
  oConn.Close
  Set oConn = Nothing
  if err.number < > 0 then
  Response.Redirect("admin.asp?Error_Del=True")
  else
  Response.Redirect("admin.asp?Error_Del=False")
  end if
 else
  Response.Redirect("admin.asp")
 end if 'iGuestID < > ""
 %>

   上述代碼與unsubscribe.asp中的代碼非常相似,實際上兩者完成的任務也很類似。這里的ID是必須的,它標識了要求刪除的記錄。實際的刪除任務通過DELETE SQL命令完成。

   更新記錄頁面edit_record.asp所用的代碼稍微復雜一點,其界面如圖5所示。這里要用到兩個SQL語句:第一個SQL SELECT語句從數據庫選取需要編輯的記錄;第二個SQL UPDATE語句將管理員編輯結果保存到數據庫。這里我們不再具體分析實現過程,請參見本文所附代碼及其注釋。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 安阳市| 金川县| 大英县| 锡林郭勒盟| 富阳市| 河津市| 屏东县| 临海市| 花莲县| 德钦县| 灌阳县| 于都县| 沙雅县| 浏阳市| 东港市| 海口市| 伽师县| 公安县| 武鸣县| 宜黄县| 兴和县| 白朗县| 湟源县| 上虞市| 普洱| 丁青县| 新巴尔虎左旗| 扎赉特旗| 疏附县| 西吉县| 泰来县| 施甸县| 阿坝| 镇远县| 奈曼旗| 工布江达县| 普定县| 长春市| 衡山县| 黎平县| 旅游|