
 
 | 
| 技术资料  > ASP技术 > 打印相关 : ASP环境下邮件列表功能的实现 (二)(推荐) |  
ASP环境下邮件列表功能的实现 (二)(推荐) March 25,2004 |  
     为最终用户提供的功能主要由一个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地址。上述代码实现了面向用户的第二个功能,接下来我们要实现的是登记簿的管理功能。 |  
 
 | 
  
Copyright © 2001-2008 Shenzhen Hiblue Software Team All rights reserved