续上篇
上一篇中,我们完成了显示统计结果和调查列表的程序,最后我们来完成后台
管理页面,也是最重要的一个程序。
一、后台管理
在后台管理页面survey_manage.asp中,前面我们已经列出来它所要实现的
管理功能。管理的流程是先显示出所有调查,对于还没有开始的调查,可以进行修
改、删除;对于已经结束的调查,可以删除,不能修改;对于正在进行的调查,只
能修改它的结束时间。用一个参数action来表示动作,含义如下:
1、无参数。表示第一次进入,显示登录表单
2、login 表示执行登录
3、logout 表示执行退出登录
4、showaddquestion 表示显示增加一个调查
5、showsurvey 表示显示一个调查
6、doaddsurvey 表示执行增加一个调查
7、doaddanswer 表示执行增加一个答案
8、dodelsurvey 表示删除一个调查
9、dodelanswer 表示删除一个答案
10、domodify 表示修改一个调查及答案
<!--#include file="inc.asp" -->
<%
opendb my '打开数据库
'获取参数。action表示动作,分别对应上面的功能。
action=request.querystring("action")
id=request.querystring("id")
'获取当前文件名
scr=Request.ServerVariables("SCRIPT_NAME")
'根据动作来转向相应的子程序
select case action
case "login"
login() '执行登录
case "logout"
logout() '执行退出登录
case "doaddsurvey"
doaddsurvey() '执行增加一个调查
case "dodelsurvey"
dodelsurvey() '执行删除一个调查
case "dodelanswer"
dodelanswer() '执行删除一个答案
case "domodify"
domodify() '执行修改一个调查及答案
end select
'----登录子程序----
sub login()
username=request.form("username") '获取用户名
password=request.form("password") '获取密码
if username<>"" and password<>"" then
sql="select * from manage where manage_username='"& username &"'" '查询用户
searchtable my,sql,rs
if not rs.eof then '如果有
if rs("manage_password")=password then '密码也正确
session("survey_login")=true '登录
end if
end if
closetable rs '关闭表
end if
response.redirect scr '不管有没登录,最后都回到管理页
end sub
'----退出登录子程序----
sub logout()
'删除session变量
session.contents.remove "survey_login"
response.redirect scr '回到管理页面
end sub
'----执行增加调查子程序----
sub doaddsurvey()
question=request.form("question")
stime=request.form("stime")
etime=request.form("etime")
stype=request.form("stype")
if question<>"" and stime<>"" and etime<>"" and isdate(stime)_
and isdate(etime) and session("survey_login") then
sql="select * from survey where survey_id is null"
changetable my,sql,rs
rs.addnew
rs("survey_question")=question
rs("survey_stime")=cdate(stime)
rs("survey_etime")=cdate(etime)
rs("survey_type")=cbool(stype)
rs.update
id=rs("survey_id")
closetable rs
response.redirect scr&"?action=showsurvey&id="&id '回到显示页面
end if
response.redirect scr '回到显示页面
end sub
'----执行增加调查答案子程序----
sub doaddanswer()
answer=request.form("newanswer")
if session("survey_login") then
sql="select * from survey_vote where vote_no is null"
changetable my,sql,rs
rs.addnew
rs("vote_answer")=answer
rs("vote_id")=id
rs.update
closetable rs
end if
'response.redirect scr&"?action=showsurvey&id="&id '回到显示页面
end sub
'----执行修改调查子程序----
sub domodify()
question=request.form("question")
stime=request.form("stime")
etime=request.form("etime")
stype=request.form("stype")
answer=request.form("newanswer")
if session("survey_login") then
sql="select * from survey where survey_id="&id
changetable my,sql,rs
if not rs.eof then
if question<>"" then rs("survey_question")=question
if stime<>"" and isdate(stime) then rs("survey_stime")=cdate(stime)