<%whilenotrs.eofandnum<=size%>
[留言主题]<%=rs("主题")%>
[留言内容]<%=rs("内容")%>
<%=rs("昵称")%>
[<%=rs("时间")%>]
+---------------------------------------------------------------------+
<%rs.movenext
num=num+1
wend
rs.close
setrs=nothing%>
[第一页]
<%selectcasepage
case1:'只有下一页
iftotlepage>1then
%>
[下一页][第<%=page%>页/共<%=TotlePage%>页][共<%=numzhuce%>条记录]
<%else%>
第<%=page%>页/共<%=TotlePage%>页
<%endif%>
<%caseTotlePage:'只有上一页%>
">[上一页][第<%=page%>页/共<%=TotlePage%>页][共<%=numzhuce%>条记录]
<%caseelse:%>
">[上一页]
">[下一页]
[第<%=page%>页/共<%=TotlePage%>页][共<%=numzhuce%>条记录]
<%endselect%>
<%endif%>
此模块用到了RecordCount、request.querystring等方法以及一些翻页的技巧。由于篇幅限制,这里只给出了一部分比较重要的代码,其它的简略。
4.2用户留言及修改模块
该模块的功能是,用户可以在这里把自己的留言写在这里,如果其它用户浏览里,就可以看到此用户的留言(模块的缩略图如下3.2)。
(图4.2)
该模块由留言昵称、留言QQ、电子信箱、个人网站、留言主题和留言内容组成,其中后面有带星号的为必填项,其它的为选填项,写完之后单击写好了,即可提交,按返回上页,直接返回到首页。此页中用到了表单提交的一些技术,相关代码如下:
functionpresub1(f){
if(f.t1.value=="")
{
alert("昵称不能为空");
returnfalse;}
elseif(f.t5.value=="")
{
alert("主题不能为空");
returnfalse;}
elseif(f.s1.value=="")
{
alert("请输入正文内容");
returnfalse;}
else
returntrue;
}
以上这段程序的功能是利用JAVA脚本进行本地验证,当用户的表单里填入空值或者不正确值的时候给出相应的提示。无需通过服务器。
这句代码的功能是将整个表单以post方式发送到xly1.asp文件里。
4.3用户注册模块
此模块的功能是用户可以在这里注册成为会员,有一些比普通用户更有一些权限。下图是注册的缩略图。
(图4.3)
该模块的具体设计和代码如下:
functionpresub1(f){
if(f.yhm.value=="")
{
alert("用户名不能为空");
returnfalse;}
elseif(f.kl.value=="")
{
alert("密码不能为空");
returnfalse;}
elseif(f.kl.value!=f.qrkl.value)
{
alert("两次输入密码不一致");
returnfalse;}
elseif(f.zjhm.value=="")
{
alert("请输入证件号码");
returnfalse;}
else
returntrue;
}
以上程序是本地验证,要求输入的内容不能为空或者内容不合法。
<%
setrs=server.createobject("adodb.recordset")
rs.open"select*fromnews","dsn=ql;"
yhm=request("yhm")
kl=request("kl")
qrkl=request("qrkl")
zjhm=request("zjhm")
lxfs=request("lxfs")
dh=request("dh")
dw=request("dw")
%>
注册信息
您注册的信息:
<%=request("yhm")%>
<%=request("kl")%>
<%=request("qrkl")%>
<%=request("zjhm")%>
<%=request("lxfs")%>
<%=request("dh")%>
<%=request("dw")%>
以上程序把注册信息发送到服务器的数据库,并在屏幕上显示出来。
4.4管理员登陆模块
(图4.4)
该模块的功能是管理员可以在这里登陆,可以在线的管理这些留言,管理员有特殊的权限,做普通用户不可以做的事情,比如,可以将留言删。(该模块的缩略图如3.3)具体的实现和代码如下:
<%response.buffer=true%>
<%response.expires=0%>
这两名话的作用是打开内存中的缓冲区。
functionpresub(f){
if(f.usname.value=="")
{
alert("请输入用户名");
returnfalse;}
elseif(f.uspas.value=="")
{
alert("请输入密码");
returnfalse;}
else
returntrue;
}
以上这段程序的功能是利用JAVA脚本进行本地验证,当管理员输入的用户名和密码为空值或者不正确值的时候给出相应的提示
4.5管理员回复与删除留言模块
此模块的功能是管理员可以进入,并且可以进行增加和删除等功能,(此模块的缩略图如3.4)具体的实现方和代码如下:
(图4.5)
当用户点删除时,弹出提示,询问是否删除,如果确定点是,否则点取消。
<%response.buffer=true%>
<%
setrs=server.createobject("adodb.recordset")
rs.open"select*fromlyb","dsn=stu;"
%>
<%setcn=server.createobject("adodb.connection")
cn.open"dsn=stu;"
%>
定义缓冲区和连接数据源。
<%
username=request.querystring("username")
iftrim(username)<>""then
sql="deletefromlybwhere昵称='"&username&"'"
cn.executesql
endif
%>
<%'***************************************显示数据库表stu中的信息***************************************
sql="select*fromlyb"
setrs=server.createobject("ADODB.Recordset")
rs.Opensql,conn,1
numzhuce=rs.RecordCount
page=request.querystring("page")'接收上一页、下一页的页号
iflen(page)>0andisnumeric(page)then
page=int(page)
else
page=1
endif
ifnotrs.eofthen
size=7
rs.PageSize=size'每页记录数
TotlePage=rs.PageCount'总页数
TotlePage=int(numzhuce/size)
if(numzhucemodsize)>0thenTotlePage=TotlePage+1'总页数
ifpage<1orpage>TotlePagethen
page=1
rs.AbsolutePage=page'当前页
else
rs.AbsolutePage=page'当前页
endif
num=1'循环变量初值
%>
把总页数和每页的内容分别赋给变量。
<%'****************************删除确认******************************************%>
functionchkdel(){
vartalk=window.confirm("请确定是否删除该条记录!");
if(talk==false){returnfalse;}
}
确认是否删除该记录。
<%whilenotrs.eofandnum<=size%>
[留言主题]<%=rs("主题")%>
[留言内容]<%=rs("内容")%>
<%=rs("昵称")%> [<%=rs("时间")%>]
+---------------------------------------------------------------------+
"="returnchkdel();">删除?
<%rs.movenext
num=num+1
wend
rs.close
setrs=nothing%>
[第一页]
<%selectcasepage
case1:'只有下一页
iftotlepage>1then
%>
[下一页][第<%=page%>页/共<%=TotlePage%>页][共<%=numzhuce%>条记录]
<%else%>
第<%=page%>页/共<%=TotlePage%>页
<%endif%>
<%caseTotlePage:'只有上一页
%>
">[上一页][第<%=page%>页/共<%=TotlePage%>页][共<%=numzhuce%>条记录]
<%caseelse:%>
">[上一页]
">[下一页]
[第<%=page%>页/共<%=TotlePage%>页][共<%=numzhuce%>条记录]
<%endselect%>
<%endif%>
4.6其他程序模块
以上几节简单的介绍了几个模块的一些比较重点的程序段,但是在本节中介绍一下几个在表面上看不到的,但是却起着相当重要的一些代码。
<%sj=date()
aaa="'"&request("T1")&"','"&request("T2")&"','"&request("T3")&"','"&request("T4")&"','"&request("T5")&"','"&request("s1")&"','"&sj&"'"%>
<%setcn=server.createobject("adodb.connection")
cn.open"dsn=stu;"
%>
<%strsql="insertintolyb(昵称,qq,邮箱,网站,主题,内容,时间)values("&aaa&")"
cn.execute(strsql)
%>
<%cn.close
setcn=nothing%>
<%response.redirect"lyb.asp"%>
以上这段代码是在后台运行的,该网页是个空的,什么也不显示,当用户写完留言的时候,把表单里所有的东西都要提交到这里,利用ASP提供的insertint等语句把他传送到服务器的数据库的表格里。
<%response.buffer=true%>
<%usname=request("usname")
uspas=request("uspas")
setrs=server.createobject("adodb.recordset")
rs.open"select*frompassword","dsn=stu;"
%>
<%whilenotrs.eof
ifusname=rs("用户名")anduspas=rs("密码")then
%>
<%response.redirect"lybxg.asp"%>
<%response.end%>
<%endif
rs.movenext
wend
rs.close
setrs=nothing%>
<%response.redirect"lybgly.asp"%>
该程序段的功能是,接收用户名和密码,并把用户名和密码发送到服务器的数据库里验证,如果和数据库里的一样,则可以登陆,否则提示用户名或密码错误。
<%
constr="DBQ="+server.mappath("stu.mdb")+";DefaultDir=;DRIVER={MicrosoftAccessDriver(*.mdb)};"
setconn=Server.CreateObject("ADODB.connection")
conn.openconstr
%>
连接数据源文件。
后记
上述就是本人留言板系统全部的设计和开发过程。本系统经历了从系统问题的提出-系统可行性分析-系统数据库的设计-总体的功能模块设计-详细设计-最后到程序的实现,就是以这样的一个思路完成的整个系统的开发。
通过这次毕业设计,使我感到高科技、新知识的力量。这次毕业设计过程中,得到了学校的大力支持,给我提供了舒适的工作学习环境,也得到了科大老师、教授的精心指导,在此表示衷心的感谢!
由于本人第一次完整的设计程序,加之水平有限,设计中难免有不当之处,还请各位老师给予批评、指正。
参考文献
[1].巧学巧用Dreamweaver、Fireworks、Flash制作网页.北京:人民邮电出版社.2000
[2].ASP入门与实例演练薄.小志编著.北京:中国青年出版社.1999
[3].数据库原理及应用.李卓铃.北京:电子工业出版社.2001
[4].ASP程序设计.谭浩强.北京:清华大学出版社.2000
附件:系统程序文件清单
stu.mdbMicrosoftAccess2000数据库表文件
index.asp系统主页
xly.asp用户写留言
lybgly.asp留言板管理员登陆
lybxg.asp留言板管理员修改
xly1.asp把用户写的留言发送到服务器
login.asp验证管理员用户名
conn.asp连接数据源文件
??
??
??
??
1
--
上一篇:ASP电脑配机(论文和程序)
下一篇:试析影响公路路面平整度的因素及应采取的施工措施