上一篇:ASP环境下邮件列表功能的实现 (四)(推荐) >>
ASP环境下邮件列表功能的实现 (三)(推荐)
< %
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语句将管理员编辑结果保存到数据库。这里我们不再具体分析实现过程,请参见本文所附代码及其注释。
()
下一篇:ASP环境下邮件列表功能的实现 (二)(推荐) >>
相关文章:
- · 一个BBS的源代码(一)
- · 如何实现动态添加Html文档中Form项
- · 组件对象开发Web应用的实例分析
- · 如何使用ASP在自己的网站建立投票机制(二)
- · 如何使用ASP在自己的网站建立投票机制(一)
- · 优化MICROSOFT ACCESS提高速度
- · 网络开发之编程技巧之一(有效验证用户的登录)
- · IIS 5.0新功能
- · WINDOWS 2000搭載ASP3.0和IIS5.0
- · 如何使用 Microsoft Access 和 Active Server Pages 加密你的页面
- · IIS5 + ADO 2.5新先睹为快技术(二)
- · IIS5 + ADO 2.5新先睹为快技术(一)
- · ASP 3.0 新特色先睹为快(二)
- · ASP 3.0 新特色先睹为快(一)
- · 如何用ASP编写网站统计系统四
- · 如何用ASP编写网站统计系统三
- · 如何用ASP编写网站统计系统二
- · 如何用ASP编写网站统计系统一
- · 构建你的网站新闻自动发布系统之四
- · 构建你的网站新闻自动发布系统之三
- · 构建你的网站新闻自动发布系统之二
- · 构建你的网站新闻自动发布系统之一
- · ASP的Internet/Intranet编程常见问题
- · 一个简单聊天室的建立.(供学习参考)
- · 用ASP实现一个真正的注册页面
- · 在ASP中常见的错误80004005信息和解决办法
- · ADO存取数据时如何实现留言记录的分页显示
- · 用ASP实现网页BBS
- · 网页在线人数统计的做法
- · 聊天室实现私聊(四)
- · 聊天室实现私聊(三)
- · 聊天室实现私聊(二)
- · 聊天室实现私聊(一)
- · 用ASP实现网页保密的两种方法
- · 利用ASP规划聊天室
- · 用ASP建立站内搜索
- · ASP主件中的安全问题
- · 善用 SELECT INTO 功能
