ASP环境下邮件列表功能的实现 (二)
程序员文章站
2024-02-03 08:00:16
为最终用户提供的功能主要由一个html文件和两个asp文件提供,它们负责接受用户的订阅申请以及退出邮件列表申请。 用户的个人信息在图1所示的登记表单中输入,其实现文件是hom...
为最终用户提供的功能主要由一个html文件和两个asp文件提供,它们负责接受用户的订阅申请以及退出邮件列表申请。
用户的个人信息在图1所示的登记表单中输入,其实现文件是homepage.htm。当用户提交表单,对用户输入数据进行必要的验证,然后把它们保存到并提示注册成功信息。这部分功能可以在signbook.文件找到,下面的代码用于将用户输入数据保存到数据库:
如果用户输入数据验证通过则将它保存到数据库
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
这些代码实现了面向最终用户的第一个功能:将个人信息注册到登记簿并将用户加入到邮件列表。
每一个从邮件列表接收邮件的用户可以在邮件的最后发现一个链接(类如),以及用户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所示的登记表单中输入,其实现文件是homepage.htm。当用户提交表单,对用户输入数据进行必要的验证,然后把它们保存到并提示注册成功信息。这部分功能可以在signbook.文件找到,下面的代码用于将用户输入数据保存到数据库:
如果用户输入数据验证通过则将它保存到数据库
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
这些代码实现了面向最终用户的第一个功能:将个人信息注册到登记簿并将用户加入到邮件列表。
每一个从邮件列表接收邮件的用户可以在邮件的最后发现一个链接(类如),以及用户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地址。上述代码实现了面向用户的第二个功能,接下来我们要实现的是登记簿的管理功能。