资源描述
河南化工职业学院
ASP课程设计
系部名称: 信 息 工 程 系
专 业: 计 算 机 应 用
姓 名:
学 号:
指导教师: 邵华 任立峰
2010年12月
摘要关键字
摘要
本论文概述了ACCESS数据库及其相关的一些知识,着重论述ACCESS数据库和ASP的中间技术,构建一个简单的留言板。
具体的实现是构造一个留言板系统,能很方便的和同学沟通和交流。留言板具有功能强大、使用方便的特点。用户以个人的身份进入,查看留言,以及在留言板中写下自已要留言的内容。管理员可根椐管理员用户名和密码进入,进行适当的修改和删除。
在此设计中,主要的技术有:ASP,HTML,ADO等,用到的运行环境(操作系统,服务器)有WINDOWS98,PWS,和IE 5.0等,将它们集成在一个INTRANET(模拟INTERNET)的环境中,从而实现了设计。
【关键词】留言板 网络数据库 ASP HTML
目录
第一章 背景与概述
1.1开发背景
1.2 开发意义
1.3 概述
1.3.1设计思想
1.3.2 留言板分析
1.3.3 留言板设计
1.3.4 设计语言简介
第二章 需求分析概念及结构设计
2.1 需求分析
2.1.1 需求分析的任务
2.1.2 分析过程
2.1.3基本过程
2.2 留言板功能实现简述(要有核心代码注释)
2.2.1 功能一
2.2.2 功能二
2.2.3 功能三
2.2.4 功能四
2.2.5 功能五
2.2.6 功能六
第三章 测 试
5.1 测试的目的
5.2 测试的目标
5.3 测试的方法
5.4 测试过程
第四章 设计体会总结
第五章 致谢
第六章 参考文献
第七章 附录程序清单
第一章 背景与概述
1.1开发背景
留言板在网站的开发中是很常用的功能。用户在访问网站后,可以发表看法、留下意见或提出问题,网站管理者可以给予答复。通过留言板,网站管理者可以与用户进行简单的交流。
1.2 开发意义
能够更好的掌握ASP语言编程的要领和方法,加强动手实践能力,增加自己的编程能力。综合运用所学的知识,检验自己的水平和能力,在开发中学习和领悟。
1.3 概述
此次开发有留言板的基本功能、数据库及数据表的设计、用户访问程序、程序清单及说明等部分组成。
留言板基本功能包括留言板主页,可以显示当前所有留言,最近的的留言在最前面。提供如“第一页”,“下一页”,“最后一页”的翻页功能,也可以输入页号转入到相应的网站。通过主页任何用户都可以发表留言。主页上述还提供“管理员入口”,“回复留言”,“删除留言”链接,管理员登录后,就可以进行“回复留言”,“删除留言”的操作。
在ACCESS中创建一个名为Gbook_data.mdb的数据库文件,在数据库中设计admin_user,GuestBook两个数据表。
用户访问流程
程序清单及说明
文件名
文件说明
所在目录
default.asp
留言板主页,显示留言
GuestBook
add_Content.html
提供发表新留言的界面
GuestBook
execute.asp
新留言处理程序
GuestBook
admin_login.html
管理员登录界面
GuestBook\admin
admin_update_reply.asp
留言回复界面
GuestBook\admin
admin_execute.asp
处理登录、回复及删除
GuestBook\admin
Error_page.asp
出错处理界面
GuestBook\admin
Gbook_data.mdb
数据库文件
GuestBook\data
1、 数据库链接文件conn.asp
2、 留言板主页 default.asp
3、 留言处理程序add_content.html和execute.asp
4、 回复留言程序admin_update_reply.asp
5、 登录、回复、删除处理程序admin_execute.asp
1.3.1设计思想
留言板设计分为四部分:留言板的基本功能、数据库及数据表的设计、用户访问流程、程序清单及说明。
1.3.2 留言板分析
文件名
文件说明
所在目录
default.asp
留言板主页,显示留言
GuestBook
add_Content.html
提供发表新留言的界面
GuestBook
execute.asp
新留言处理程序
GuestBook
admin_login.html
管理员登录界面
GuestBook\admin
admin_update_reply.asp
留言回复界面
GuestBook\admin
admin_execute.asp
处理登录、回复及删除
GuestBook\admin
Error_page.asp
出错处理界面
GuestBook\admin
Gbook_data.mdb
数据库文件
GuestBook\data
1.3.3 留言板设计
留言板大致要包括以下几个部分:
1、留言页(main.asp)
说明:这就是显示留言的部分,任何访问该留言板的访客都可以看到,该页提供发表留言功能和浏览发表留言者的相关信息的功能;
2、发表留言页&处理发表页(add.asp&addsave.asp)
说明:分别负责发表留言和提交留言到数据库;
3、管理登录页&处理登录页&管理页(admin.asp&checkpass.asp&mymanage)
说明:留言板需要管理员来管理,包括管理留言,如果实行会员制,还可以管理会员,管理员需要最高权限,一般只有一个,只有拥有管理员账号和密码的人才可以进入管理页面,所以以上三个页面分别用于管理员登录、处理登录(拒绝非管理员账号登录)、验证成功的管理员页面;
4、删除留言页(del.asp)
说明:如果有人发表了不符合规定的留言,管理员可以给予删除。
1.3.4 设计语言简介
HTML(Hyper Text Markup Language 超文本置标语言)是一种用来制作超文本文档的简单标记语言。用HTML编写的超文本文档称为HTML文档,它能独立于各种操作系统平台(如UNIX,WINDOWS等)。自1990年以来HTML就一直被用作World Wide Web上的信息表示语言,用于描述Homepage的格式设计和它与WWW上其它Homepage的连结信息。HTML文档(即Homepage的源文件)是一个放置了标记的ASCII文本文件,通常它带有.html或.htm的文件扩展名。生成一个HTML文档主要有以下三种途径: 1.手工直接编写(例如用你所喜爱的ASCII文本编辑器或其它HTML的编辑工具)。 2.通过某些格式转换工具将现有的其它格式文档(如WORD文档)转换成HTML文档。 3.由Web服务器(或称HTTP 服务器)一方实时动态地生成。HTML语言是通过利用各种标记(tags)来标识文档的结构以及标识超链(Hyperlink)的信息。虽然HTML语言描述了文档的结构格式,但并不能精确地定义文档信息必须如何显示和排列,而只是建议Web浏览器(如Mosiac,Netscape等)应该如何显示和排列这些信息,最终在用户面前的显示结果取决于Web浏览器本身的显示风格及其对标记的解释能力。这就是为什么同一文档在不同的浏览器中展示的效果会不一样。目前HTML语言的版本是2.0,它是基于SGML(Standard Generalized Markup Language,标准广义置标语言,是一套用来描述数字化文档的结构并管理其内容的复杂的规范)中的一个子集演变而来的。虽然下一版本的标准HTML3.0(也称为HTML+)正在制订之中,但其中某些部分的实验性标准草案已被广泛采用,大多优秀的Web浏览器(如Netscape等)都能解释HTML3.0中的部分新标记,因此在本章中介绍的一些HTML3.0新标记均已被多数浏览器所接受。
一:无须Compile编译:容易产生,无须Compile 编译或Link 链接即可执行。
二:使用常规文本编辑器,如Windows的记事本,即可设计。
三:与浏览器无关(Browser Independence):用户端只要使用常规的可执行HTML玛的浏览器,即可浏览Active Server Pages 所设计的主页内容,
Script 语言(Vbscript ,Jscript)是在站点服务器(Server端)执行,用户不需要执行这些Script语言。
四:面向对象(Object_Orient).
五: 可通过ActiveX Server components(ActiveX服务器组件)来扩充功能。
ActiveX Server component,可使用Visual Basic,Java,Visual C++,COBOL等语言来实现。
六:Active Server Pages与任何AcTiveX scripting 语言兼容。除了可使用VBscript 或JScript语言来设计,并可通过Plug-in的方式,使用由third party所提供的其他譬如REXX,perl,Tcl 等scripting语言。script引擎是处理script的COM(Component Object Model)对象。
七:Active server Pages的源程序代码,不会传到用户的浏览器,因此可以保护辛辛苦苦写出来的源程序不会外泻。传到用户浏览器的是Active Server Pages执行的结果的常规HTML码。
八:使用server端script产生client端script,你可以使用ASP程序码,在站点服务器执行script语言(VBscript 或 Jscript),来产生或更改在client端执行的script语言。
第二章 需求分析概念及结构设计
2.1 需求分析
1.留言板的功能有用户发表留言、管理员回复留言和删除留言、上下翻页功能。
2.数据库及数据表的设计。
3.用户访问流程
4.程序清单及说明
2.1.1 需求分析的任务
此次开发有留言板的基本功能、数据库及数据表的设计、用户访问程序、程序清单及说明等部分组成。
留言板基本功能包括留言板主页,可以显示当前所有留言,最近的的留言在最前面。提供如“第一页”,“下一页”,“最后一页”的翻页功能,也可以输入页号转入到相应的网站。通过主页任何用户都可以发表留言。主页上述还提供“管理员入口”,“回复留言”,“删除留言”链接,管理员登录后,就可以进行“回复留言”,“删除留言”的炒作。
在ACCESS中创建一个名为Gbook_data.mdb的数据库文件,在数据库中设计admin_user,GuestBook两个数据表。
用户访问流程
程序清单及说明
2.1.2 分析过程
一、设计数据库
ASP程序本身并不能储存数据,众所周知,留言本有以下信息需要保存:留言者姓名、联系方式、留言内容等等。因为ASP并不能储存数据,所以数据库在这种环境之下就产生了。数据库的种类也很多,针对不同的程序也有适用于它的数据库,比如Access和Ms SQL就比较适用ASP和ASP.net程序
二、连接数据库
用ASP把程序和数据库连接起来,以后就可以连接到数据库、在ASP中显示数据库中的数据以及更复杂的插入、修改和删除。
三、制作留言板首页
四、制作添加留言页面,实现留言功能
五、编写留言板功能代码。
2.1.3基本过程
一、创建数据库。二、连接数据库。三、制作留言板首页。四、制作添加留言页面,实现留言功能。五、编写留言板功能代码:1.add_Content.html、2.conn.asp、 3.default.asp 、 4. execute.asp、 5. admin_execute.asp、6. admin_login.html、 7. admin_update_reply.asp、 8. conn.asp、
9. error_page.asp 六、登录服务器运行测试。
2.2 留言板功能实现简述(要有核心代码注释)
2.2.1 功能一
1.add_Content.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>留言板</title>
</head>
<body bgcolor="#FFCOCB" text="#A52A2A">
<form method="post" action="execute.asp">
<table width="600" border="1" align="center" >
<tr>
<td colspan="2">用户发表留言</td>
</tr>
<tr>
<td>姓名:</td>
<td><input name="name" type="text" id="name" size="30" maxlength="30"></td>
</tr>
<tr>
<td>留言:</td>
<td><textarea name="content" cols="30" rows="3" id="content"></textarea></td>
</tr>
<tr>
<td><input type="submit" name="Submit" value="发表留言"></td>
<td><input type="reset" name="Submit2" value="重置"></td>
</tr>
</table>
</form>
</body>
</html>
2.2.2 功能二
2.conn.asp
<%
dim conn'定义一个全局变量
sub opendb()
On Error Resume Next
'建立Connection对象
Set conn = Server.CreateObject("ADODB.Connection")
Provider = "Provider=Microsoft.Jet.OLEDB.4.0;"
DBpath = "Data Source=" & Server.MapPath("data/Gbook_data.mdb")
'连接数据库
conn.Open Provider & DBpath
if Err.Number <> 0 then
err.clear
set conn = nothing
response.write "数据库连接错误,请检查连接字串。"
response.end
end if
end sub
sub closedb()
conn.close
set conn=nothing
end sub
%>
3.default.asp
<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="conn.asp"-->
<%
sql="select * from GuestBook order by id desc"'最新留言显示在最前面
call opendb()
'建立RecordSet对象
Set rs = Server.CreateObject("ADODB.Recordset")
'打开数据库表
rs.Open sql, conn,3,2
If rs Is Nothing Then
Response.Write "Recordset 调用失败!"
Response.End
End If
%>
<html>
<head>
<title>留言板</title>
</head>
<H2 ALIGN=CENTER>留言板<HR></H2>
<body bgcolor="#FF00FF">
<DIV ALIGN=right>
<a href="add_content.html">发表留言</a>
<a href="admin/admin_login.Html">管理员入口</a></DIV>
<%
if not rs.eof Then
Myself = Request.ServerVariables("PATH_INFO")
rs.PageSize = 3 '指定每页要显示的留言数量
Page = CLng(Request("Page"))
If Page < 1 Then Page = 1
If Page > rs.PageCount Then Page = rs.PageCount
rs.AbsolutePage = Page'指定要显示的页数
For iPage = 1 To rs.PageSize
%>
<table width="700" border="5" align="center" >
<tr>
<td bgcolor="green">发言人:</td>
<td bgcolor="green"><%=rs("Name")%></td>
<td bgcolor="#CC99FF">发言时间:</td>
<td><%=rs("Time")%></td>
<td><a href="admin\admin_update_reply.asp?id=<%=rs("id")%>">[回复留言]</a></td>
</tr>
<tr>
<td bgcolor="#FF6600">留言内容:</td>
<td colspan=4><%=rs("Content")%></td>
</tr>
<tr>
<td>站长回复:</td>
<td colspan=3><%=rs("Reply")%></td>
<td><a href="admin\admin_execute.asp?action=del_content&id=<%=rs("id")%>">[删除留言]</a></td>
</tr><p>
<p>
<p>
</table>
<%
rs.MoveNext ' 移到下一项
If rs.EOF Then Exit For
Next
%>
<DIV ALIGN=right>
<FORM Action=<%=Myself%> Method=GET>
<%If Page <> 1 Then ' 如果不是位于第一页%>
<A HREF=<%=Myself%>?Page=1>第一页</A>
<A HREF=<%=Myself%>?Page=<%=(Page-1)%>>上一页</A>
<%End If
If Page <> rs.PageCount Then ' 如果不是位于最后一页
%>
<A HREF=<%=Myself%>?Page=<%=(Page+1)%>>下一页</A>
<A HREF=<%=Myself%>?Page=<%=rs.PageCount%>>最后一页</A>
<%End If%>
输入页次:<INPUT TYPE=TEXT Name=Page SIZE=3>
<INPUT TYPE="submit" value ="提交">
页次:<FONT COLOR="black"><%=Page%>/<%=rs.PageCount%></FONT>
</FORM>
</DIV>
<%
else
call closedb()
response.write "目前还没有留言"
response.end
end if
%>
</body>
</html>
2.2.3 功能三
4. execute.asp
<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="admin/error_page.asp"-->
<!--#include file="conn.asp"-->
<%
response.expires=now()-1
Response.CacheControl = "no-cache"
name=Trim(request("name"))
content=Trim(request("content"))
if name="" or content="" then
call error("姓名或留言不能为空!")
call Iserror()
response.end
end if
call opendb()
sql="insert into GuestBook(name,content) values ('"& name &"','"& content& "')"
conn.execute(sql)
call closedb()
response.redirect "default.asp"
%>
2.2.4 功能四
5. admin_execute.asp
<%@LANGUAGE="VBSCRIPT"%>
<%const need_purview=9%>
<!--#include file="conn.asp"-->
<!--#include file="error_page.asp"-->
<%
response.expires=now()-1
Response.CacheControl = "no-cache"
dim action
action=lcase(trim(request.querystring("action")))
select case action
case "login"
name=trim(request("name"))
pwd=trim(request("pwd"))
if name="" or pwd="" then
call error("用户名、密码不能为空!")
call Iserror()
response.end
else
sql="select name,pwd from admin_user where name='" & name & "' and pwd='" & pwd & "'"
call opendb()
set rs=conn.execute(sql)
if not rs.eof then
session("name")=name'管理员用户名
session("purview")=9'设置权限
rs.close
set rs=nothing
call closedb()
response.redirect "../default.asp"
response.end
else
rs.close
set rs=nothing
call closedb()
call error("用户名或密码出错!<br>如果忘记密码请与管理员联系。")
call Iserror()
response.end
end if
end if
case "del_content"
'判断权限,只有管理员可以删除留言
if Isempty(session("purview")) or session("purview")<need_purview then
call error("对不起你没有访问该页的权限或者超时!<br>请重新登录或与系统管理员联系!")
call Iserror()
response.end
end if
call opendb()
conn.execute("delete * from GuestBook where id=" & request.querystring("id"))
call closedb()
response.redirect "../default.asp"
response.end
case "update_reply" '更新回复
'判断权限,只有管理员可以回复
if Isempty(session("purview")) or session("purview")<need_purview then
call error("对不起你没有访问该页的权限或者超时!<br>请重新登录或与系统管理员联系!")
call Iserror()
response.end
end if
reply=Trim(request("reply"))
sql="update GuestBook set reply= '"& reply &"' where id=" & request("id")
call opendb()
conn.execute(sql)
call closedb()
response.redirect "../default.asp"
response.end
case else
call error("出现未知错误,请与管理员联系!")
call Iserror()
response.end
end select
%>
2.2.5 功能五
6. admin_login.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>管理员登录</title>
</head>
<body bgcolor="#FFC0CB" text="A52A2A">
<form name="login" method="post" action="admin_execute.asp?action=login">
<table width="360" border="1" align="center">
<tr>
<td colspan="4">管理员登录界面,其它用户请直接进入<a href='../default.asp'>留言板</a></td>
</tr>
<tr>
<td width="80">用户名:</td>
<td colspan="3"><input name="name" type="text" size="20" maxlength="20"></td>
</tr>
<tr>
<td>密码:</td>
<td colspan="3"><input name="pwd" type="password" size="21" maxlength="20">
</td>
</tr>
<tr>
<td>
<input type="submit" name="Submit" value="提交">
</td>
<td colspan="3">
<input type="reset" name="Submit2" value="重置">
</td>
</tr>
</table>
</form>
</body>
</html>
7. admin_update_reply.asp
<%@LANGUAGE="VBSCRIPT"%>
<%const need_purview=9%>
<!--#include file="conn.asp"-->
<!--#include file="error_page.asp"-->
<%
response.expires=now()-1
Response.CacheControl = "no-cache"
'判断权限,只有管理员可以登陆这个页面
if Isempty(session("purview")) or session("purview")<need_purview then
call error("对不起你没有访问该页的权限或者超时!<br>请重新登录或与系统管理员联系!")
call Iserror()
response.end
end if
id=Trim(request.querystring("id"))
sql="select * from GuestBook where id=" & id
call opendb()
set rs=conn.execute(sql)
if not rs.eof then
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>发表回复</title>
</head>
<body bgcolor="#FFC0CB" TEXT="#000000">
<form method="post" action="admin_execute.asp?action=update_reply&id=<%=id%>">
<table width="600" border="1" align="center">
<tr>
<td colspan="2">发表回复</td>
</tr>
<tr>
<td>留言:</td>
<td><%=rs("content")%></td>
</tr>
<tr>
<td>回复:</td>
<td><textarea name="reply" cols="30" rows="3" id="reply"><%=rs("reply")%></textarea></td>
</tr>
<tr>
<td><input type="submit" name="Submit" value="发表回复"></td>
<td><input type="reset" name="Submit2" value="重置"></td>
</tr>
</table>
</form>
</body>
</html>
<%
End if
call closedb()
%>
2.2.6 功能六
8. conn.asp
<%
dim conn'定义一个全局变量
sub opendb()
On Error Resume Next
'建立Connection对象
Set conn = Server.CreateObject("ADODB.Connection")
Provider = "Provider=Microsoft.Jet.OLEDB.4.0;"
DBpath = "Data Source=" & Server.MapPath("../data/Gbook_data.mdb")
'连接数据库
conn.Open Provider & DBpath
if Err.Number <> 0 then
err.clear
set conn = nothing
response.write "数据库连接错误,请检查连接字串。"
response.end
end if
end sub
sub closedb()
conn.close
set conn=nothing
end sub
%>
9. error_page.asp
<%
dim finderror
finderror=false
dim errmsg
errmsg=""
sub error(message)
errmsg=errmsg & "<br>" & message
finderror=true
end sub
sub Iserror()
if finderror=true then
call show_error()
end if
end sub
sub show_error()
%>
<html><head>
<title>错误提示:</title>
</head>
<body>
<table width="300" border="1" align="center">
<tr>
<td>错误提示:</td>
</tr>
<tr>
<td><%=errmsg%><p></td>
</tr>
<tr>
<td><input name="back" type="button" id="back" value="返回" onclick="history.go(-1)"></td>
</tr>
</table>
</body>
</html>
<%end sub%>
第三章 测 试
5.1 测试的目的
查漏补缺。
看留言板的功能能否实现,能否运行成功。然后根据运行的情况进行修改和完善。使留言板程序更加完美。
5.2 测试的目标
使程序的运行更顺畅完美,功能更完善。
5.3 测试的方法
在服务器上登录add_content.html,分别输入用户的姓名和留言 ,然后点击发表留言,进入留言板主页
展开阅读全文