程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP技巧 >> ASP環境下郵件列表功能的實現 (二)(推薦)

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

編輯:ASP技巧

     為最終用戶提供的功能主要由一個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地址。上述代碼實現了面向用戶的第二個功能,接下來我們要實現的是登記簿的管理功能。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved