ASP程序设计课程设计报告新闻发布系统.doc
ASP程序设计课程设计报告课题名称: 新闻发布系统 姓 名: 伍 俊 学 号: A083GZ053020211 专业班级: 08软件(2)班 系 (院): 计算机科学系 摘 要 伴随着网络的出现,网页逐渐融入人们的生活。快速及时的新闻浏览,五彩缤纷的网上信息,使网络与人们的生活息息相关。它打破了地域限制,真正使信息得以共享,改变了人们的工作和生活方式。网站新闻发布系统,是将网站上需要经常变动的信息,类似公司动态、企业新闻、新产品发布、促销活动和行业动态等更新信息集中管理,并通过信息的某些共性进行分类,最后系统化、标准化发布到网站上的一种网站应用程序。本系统采用ASP作为开发环境,ACCESS 2000作为数据库服务器,IIS作为测试服务器,实现了对新闻类别无限级分类设置、动态新闻的发布修改删除,前台页面的模板自定义和生成,以及后台管理员权限和数据库的备份收缩等一系列的功能,完成了一个动态新闻发布系统的所有功能。系统捕获了绝大多数的异常情况,具有较好的容错性。 【关键词】 ASP、ACCESS、IIS、新闻发布、信息管理、模板目 录摘 要1目 录20 引 言31 新 闻 发 布 系 统 简 介41.1 新闻发布系统41.2 新闻发布系统的特点41.3 新闻发布系统的分类42 系 统 分 析62.1 需求分析62.2 可行性分析63 总 体 设 计63.1 项目规划63.2系统模块以及功能结构图74 系 统 设 计84.1 逻辑结构设计85 网 站 总 体 架 构85.1 模块功能介绍85.2 网站首页的运行结果86 系 统 部 分 重 要 功 能 及 其 代 码106.1 导航区106.2 用户登录注册修改156.3 首页主体内容区246.4 友情链接区336.5 总体框架336.6 新闻发表42总 结48附录A 参 考 文 献49附录B 数 据 表500 引 言随着中国加入WTO及全球经济一体化进程的加快,世界经济已由工业化经济逐步进入网络信息化时代。在信息时代来临之季,各企业都紧跟时代的脚步,转变着企业的经营模式、管理模式,从传统的人工管理体制,向信息自动化管理体制过渡。与此同时,企业的传统式的办公管理模式也在逐步向自动化办公管理模式转变。网络自动化办公系统就是在这样的大背景下应运而生的。信息时代的到来让人们尝到了“信息爆炸”的滋味,信息的大量拥入让企业在信息处理方便应接不暇,传统的办公模式、对信息的处理方法,早已不能满足企业对信息快速、准确的处理的要求。一个企业对信息数据的掌握程度、处理能力,体现了一个企业对市场的敏感程度,数据的真实性、准确性直接决定着企业的发展方向。从传统的办公模式向自动化办公管理模式转变,提高企业的信息处理能力,以增强企业的市场竞争力,成了企业发展过程中的首要问题伴随着网络的出现,网页逐渐融入人们的生活。快速及时的新闻浏览,五彩缤纷的网上信息,使网络与人们的生活息息相关,于是世界上又出现了第三媒体Internet。它打破了地域限制,真正使信息得以共享,改变了人们的工作和生活方式。制作网页是企业和个人的宣传自己的重要手段,同时也是学习者获取学习信息的重要手段。尤其是在教育领域,在素质教育与终身教育成为必然的今天,人们对信息的需求有了更新,更高的要求,而网页由于本身所具有的信息量大,传递快速,没有时空限制等特点恰好满足这种要求。所以网页也逐渐成为一种新兴的教育资源。也正是由于网络实现网站的数据信息能够进行实时交互,保证网站数据的实时性。随着Internet的进一步发展,静态Web站点的开发与维护变得越来越困难,一方面信息的不断增加和变化,使站点维护人员不得不经常修改他们的网页,特别是基于数据库驱动的Web站点更是如此,随着Internet上信息量的增多和交互性的加强使HTML显得越来越难以胜任。另一方面静态网页由于不能与浏览者进行有效交互,使人们感到越来越乏味,而不愿意再一次地进入同一站点。所以开发动态网页或动态内容成了越来越多的站点所追求目标。所谓动态内容是由每一个用户按照自己的需求发出请求而特殊制作的Web网页。网络发展前景无限,及早与网络结合,与信息时代同步,与高科技汇合,定会给社会各行各业的发展注入新鲜的活力。站在网络时代的前夜,我们清晰地听到了网络时代的宣言:谁掌握了网络,谁就掌握了未来。1 新 闻 发 布 系 统 简 介1.1 新闻发布系统新闻发布系统(News Release System or Content Management System)又叫做内容管理系统,是一个基于新闻和内容管理的全站管理系统,新闻发布系统是基于B/S模式的WEBMIS系统,本系统可以将杂乱无章的信息(包括文字、图片和影音)经过组织,合理有序地呈现在大家面前。当今社会是一个信息化的社会,新闻作为信息的一部分有着信息量大,类别繁多,形式多样的特点,新闻发布系统的概念就此提出。新闻发布系统的提出使电视不再是唯一的新闻媒体,从此以后网络也充当了一个重要的新闻媒介的功能。简单地说,新闻发布系统就是充当一个网络新闻媒介的功能,主要实现对新闻的分类、上传、审核、发布,模拟了一般新闻媒介的新闻发布的过程,通过不同权限的账号分别实现以上所说功能,当然这些功能也可以是某一个账号全部具有。1.2 新闻发布系统的特点与一般的信息系统相比较,新闻发布系统具有以下特征:1 是基于B/S模式下的WEB信息系统,数据库逻辑相对简单,但数据量一般比较庞大;2 用户数量大,服务器压力大,是系统设计中必须考虑的问题之一,而一般的信息系统相对压力要少了很多;3 是一个开放式的系统,前台浏览无须验证。1.3 新闻发布系统的分类1. 前台动态显示的新闻发布系统其主要特点是前台采用编程语言动态读取数据库的内容,随时更新,该类系统设计简单,适合大多数中小企业建站需要,通用性不强,一般需要量身定做,不适合大型新闻站点,当用户过多时,编程语言动态读取数据库就势必消耗大量的服务器资源,造成系统运行缓慢,甚至崩溃,同时由于前台新闻是动态从数据库中读取,导致前端用户直接接触到数据库,很容易造成一些不安全的因素,例如:SQL Injection。2. 前台静态显示的新闻发布系统其主要特点为:前台新闻全部生成HTML静态文件,前台无须读取数据库,浏览器只需要直接下载HTML文件即可浏览新闻,浏览速度得到提高,同时也大大减轻了数据库服务器的压力,该系统后台设计复杂需要处理复杂的模板标签和个模板之间的逻辑,一般采用三层模式实现,该类系统灵活性大,可以通过模板自定义实现界面复杂的前台页面,一般不需要为某一个企业而定做,该系统具有良好的通用性,适合各类新闻站点,同时,系统把前端用户和数据库分割开来,系统的安全性得到大大的提高。3. 基于文本的新闻发布系统该系统在市场上占有很少的一部分,主要是把前面的数据库换成了TXT格式的文本文件,该系统主要缺点是文本文件是无序的,管理起来非常麻烦,而且安全性不高,很容易造成数据冗余,因此,目前还没有见到该类系统的商业版本,一般都作为个人用户使用。4. 基于XML数据岛的新闻发布系统 该系统是新闻发布系统的一个发展趋势,它用XML数据岛代替了数据库,XML是一个有序的数据文件,比数据库的读取速度更快,但操作起来没有数据库这么方便,但是由于开发技术难度大,该类系统现在市场很少见到。2 系 统 分 析2.1 需求分析通过调查,要求系统需要有以下功能:1. 将新闻、信息栏目和业界动态等信息集中起来发布、管理、查询等2. 网站的操作和控制可以由无ASP 基础的人员来操作!3. 无论企业网站管理人员身处何地,只要能够上网就能对网站信息进行更新及维护。4. 所有的操作可以通过浏览器完成,不需要掌握其他应用软件,用户不需培训。5. 管理系统用户,由于该系统的使用对象多,要求有较好的权限管理。一般用户可以注册和发布新闻。 6. 系统管理员为网站信息管理系统中的最高权限(即具备从后台输入、修改、删除新闻的权限),其他人员只能具备新闻查看权限7. 信息检索模块,可按关键字、标题、作者、来源、发布时间。8. 数据计算自动完成,尽量减少人工干预。9. 系统退出。2.2 可行性分析1,经济性网站新闻管理系统,又称为信息管理系统,广泛应用于大型专业网站、政府网站、企业网站等几乎所有的网站上,是将新闻、信息栏目和业界动态等信息集中起来发布、管理、查询等的一种网站应用程序通过网站对新闻信息进行快速,有效的全面的管理,大大提高了新闻的的快速发布。通过系统可对新闻的数据进行全面的管理和统计。2,技术性无论企业网站管理人员身处何地,只要能够上网就能对网站信息进行更新及维护。所有的操作可以通过浏览器完成,不需要掌握其他应用软件,用户不需培训。网络化的办公管理,使企业管理更加规范,实现了通过网络对信息进行发布、传递、接收等一系列功能。系统中设置的个人办公管理模块,为个人办公提供了一个更为方便的管理平台,大大提高个人办公的工作效率,进而提高整个企业的办公效率。3 总 体 设 计3.1 项目规划办公自动化管理系统是一个典型的数据库开发应用程序,由日常管理模块、业务管理模块、用户管理模块组成,规划系统功能模块如下:1. 日常管理模块该模块包括收文管理模块、发文管理模块、批示管理模块、会议管理模块、公共信息管理模块、个人办公管理模块、人事管理模块。2. 业务管理模块该模块包括生产报表模块、采购计划模块、库存管理模块、指标情况模块。3. 用户管理模块该模块主要包括用户发表新闻。4. 系统员管理模块该模块主要包括网站管理员管理用户和新闻。3.2系统模块以及功能结构图表3-2-1模块功能设计表模块详细功能描述新闻管理添加新闻:主要是用于发布新闻(包含新闻)编辑新闻:对已发布的新闻进行修改、删除等操作模板管理模板绑定:对主页、栏目、新闻浏览分别绑定模板,便于生成模板管理:修改、删除HTML模板(已经绑定模板不能删除)增加模板:增加新的模板系统数据新闻附件管理:对随新闻发布的附件进行有效的管理,删除无用的附件新闻分类管理:对新闻的栏目进行增加发布、修改、删除,支持无限级分类根据系统需求分析,设计系统总体结构大致如下图所示:图3-2-2系统总体结构图工作流程为:打开该网站,普通浏览者能浏览、阅读和搜索新闻,能进行注册,注册后为新闻输入员,登录进入新闻后台管理区, 只有添加新闻的权限;如登录时为新闻管理员,其不但有添加新闻的权限,还有审核和管理新闻的权限。在发布新闻的时候,用户必须要注册后才能进行发布新闻,否则你进入发布新闻页面则显示你还没有登录的提示画面,发布的新闻只要标题,分类,内容等方面,如果有写错,可以根据点击重写按钮重新输入内容,等到全部写完无误后,就可以点击发表按钮发布了!你发布的新闻就在你所选择分类的那一类下面。管理新闻功能包括对任一条新闻内容可作相应修改,也可删除任何一条不再需要保留的新闻。管理新闻分类包括对新闻分类名称作修改,也可将任一分类名删除,删除后其分类下的所有新闻也将被删除。添加用户时,用户等级可为管理员、或者输入员之一,管理用户包括修改用户名、密码和用户等级,也可将任一用户删除。4 系 统 设 计4.1 逻辑结构设计本系统数据库采用Microsoft Access2003数据库,系统数据库名称为user.mdb。数据库user.mdb中包含9张表。数据库中的数据表请参见附录B。5 网 站 总 体 架 构5.1 模块功能介绍系统主要包括以下功能模块:1. 主页浏览模块:主要用于新闻的发布。2. 新闻专栏模块:主要把新闻详细的分栏显示给用户,用户已好根据自己的意愿去访问他关心的新闻内容。3. 后台管理模块:主要包括网站的全体的新闻发布,修改,和相关的网站管理。4. 用户管理模块:主要包括超级用户、普通用户两种登录情况。超级用户包括用户添加、用户修改(所有用户)、用户注销3部分;普通用户包括用户修改(个人信息进行修改)、用户注销2部分。5.2 网站首页的运行结果首页:主要功能是显示最热门、最新和推荐的新闻,显示新闻搜索功能、页面风格设置、新闻分类、滚动新闻图片和网站公告等;如图5-2-1所示:图5-2-1为了方便阅读将网站页面的各部分说明以列表形式给出,表5-2-2表5-2-2 网站首页解析区域名称说明对应文件1导航区用于显示网站的标识、标题top.asp2用户登陆和广告时事区主要用于用户和系统管理员登陆,以及 广告 日常最新新闻的显示right.asp3主体内容区主要用于把最新新闻 分栏的显示在 主页上面body.asp4友情链接版权说明区用于友情链接和 相关链接区down.asp5总体框架主要实现把上面的模块应用在一个网页上Index.asp6 系 统 部 分 重 要 功 能 及 其 代 码6.1 导航区1. 导航区的运行结果图 6-1-12. 导航区网页分析区域名称说明对应文件1导航标签区用于显示网站的标识、标题,专栏top.asp2文章收索区主要用于用户对站内文章的收索top.asp3用户登录区主要用于用户的登录Top.asp(denglu.asp)表 6-1-23. 导航区网页代码.<top.asp><!说明:导航的效果我用到了DEEAMWEAVER 8的 设计功能制作的代码就没有给出来 ->这里给出top.asp的主要代码 下面是主要给出了框架代码,收索区代码。 A,top.asp主要框架代码。<table width="1000" border="0" align="center" cellpadding="0" cellspacing="0" style="margin-top:8px; margin-bottom:8px;" background="image/top111.gif"> <tr> <td width="100" height="60" align="center"><a href="<img src="image/topbackk.gif" border="0" width="750"/></a></td> <td width="150" align="right"><table width="150" border="0" cellpadding="5" cellspacing="0" style="border:1px solid #99BBDD;"> <tr><td><img src="./image/t_home.gif" width="16" height="16" /> <a href="#" onClick="this.style.behavior='url(#default#homepage)'this.setHomePage(document.URL);"><font size="-2" color="#FF0000">设为首页</font></a></td><td><img src="./image/t_bookmark.gif" width="15" height="13" /> <a href="#"onClick="window.external.AddFavorite(document.URL,document.title);"><font size="-2" color="#FF0000">加入收藏</font></a></td> </tr> <tr> <td><img src="./image/t_hf.gif" width="16" height="16" /> <a href="index.asp?page=10" target="_blank"><font size="-2" color="#FF0000">发表新闻</font></a></td> <td><img src="./image/t_book.gif" width="15" height="16" /> <a href="admin/admin.asp"><font size="-2" color="#FF0000">后台管理</font></a></td> </tr> </table>2下面是top.asp 主要收索区的 代码 <form method="post" action="searchindex.asp" name="form11"> <select name="ziduan" > <option value="标题">标题</option> <option value="作者">作者</option> <option value="来源">来源</option> <option value="发布时间">发布时间</option> </select><input type="text" name="cat" size="20"></input> <input type="submit" value="搜 索"></input> <a href="http:" target="_blank"><img src="image/google.gif" border="0"> </img></a> <a href="http: target="_blank"><img src="image/baidu.gif" border="0"> </img></a> </form>6.2 用户登录注册修改用户登录注册修改首页解析 如表6-2-1区域名称说明对应文件1登陆界面用于用户的登陆right.asp2注册主界面用于用户的注册页面和导航的框架Zhuce zhuceindex.asp3注册表单页面主要用于用户填写表单数据Zhuce zhucebody.htm4注册信息处理页面用于注册信息的处理Zhuce zhuce.htm3信息修改表单页面主要用于用户填写修改表单的数据Zhuce xiugai.asp4信息修改处理页面主要用于用户修改信息数据的处理Zhuce zhuce1.asp系统登录模块主要用于验证用户登录系统时输入的用户名、密码、验证码是否正确,如果正确用户进入系统,否则将不能进入此系统。系统登录页面的设计效果;如图6-2-2所示图6-2-2系统登录页面的设计效果系统登录页面所采用的是动态显示功能!系统登录页面所涉及到的程序代码如下:denglubody.asp1,登录表单代码!<%session("userlabel")=0session("user")="guest"unm=request.Form("user")pwd=request.Form("pwd")if request.QueryString("lb")=1 thenresponse.Redirect "index.asp"end ifif unm<>"" and pwd<>"" then%><!-#include file ="bodyCnn_open.asp"-><%sql="select * from user where 用户名='"&unm&"' and 密码='"&pwd&"'"set user1=cnn.execute(sql) if not user1.eof then session("userlabel")=1 session("user")=unm session("name")=user1("真实姓名") response.Redirect "index.asp" else response.Write " <cneter>账号或密码错误<br></center>" response.Write " <center><a href='index.asp'>返回</a></center>" end ifelseresponse.Write "<cneter>输入不能为空<br>"response.Write " <a href='index.asp'>返回</a></center>" end if%>2,登录处理页面<%session("userlabel")=0session("user")="guest"unm=request.Form("user")pwd=request.Form("pwd")if request.QueryString("lb")=1 thenresponse.Redirect "index.asp"end ifif unm<>"" and pwd<>"" then%><!-#include file ="bodyCnn_open.asp"-><%sql="select * from user where 用户名='"&unm&"' and 密码='"&pwd&"'"set user1=cnn.execute(sql)if not user1.eof thensession("userlabel")=1session("user")=unmsession("name")=user1("真实姓名")response.Redirect "index.asp"elseresponse.Write " <cneter>账号或密码错误<br></center>"response.Write " <center><a href='index.asp'>返回</a></center>"end ifelseresponse.Write "<cneter>输入不能为空<br>"response.Write " <a href='index.asp'>返回</a></center>"end if%>3,管理员登录页面:admin.asp 如图:6-2-3所示<%if session("userlabel")=2 thenresponse.Redirect "9-15.asp"else%><form action="admindenglu.asp" method="post" ><table align="center" background="./image/admin.gif" width="825" height="426"><tr><td height="237" align="center"> </td></tr><tr><td height="46"align="left"><input type="text" size="17" name="user"></input></td></tr><tr><td height="31" align="left"><input type="password" size="17"name="pwd"></input><input type="submit" value='确认'></input><a href="./index.asp"><font size="-1">返回首页</font></a></td></tr><tr ><td height="100" align="center"></td></tr>"</table></form><%end if%>4,管理员登录页面处理:admindenglu.asp<%session("userlabel")=0session("user")="guest"unm=request.form("user")pwd=request.form("pwd")if unm<>"" and pwd<>"" then%><!-#include file ="bodyCnn_open.asp"-><%sql="select * from admin where 用户='"&unm&"' and 密码='"&pwd&"'"set user1=cnn.execute(sql)if not user1.eof thensession("userlabel")=2session("user")=unmsession("name")=user1("真实姓名")response.Write "登陆成功<br>"response.Write "<a href='9-15.asp'>进入管理页面</a><br>"response.Write "<a href='./index.asp'>返回首页</a>"else'判别登陆的用户密码错误response.Write "用户名或密码错误<br>"response.Write "<a href='admin.htm'>返回重新登陆</a>"response.Write "<a href='./index.asp'>返回首页</a>"end ifelseresponse.Write "<cneter>输入不能为空<br>"response.Write " <a href='admin.htm'>返回</a></center>"end if%>5,系统注册页面的效果;如图 6-2-4所示图 6-2-4 系统注册页面运行效果用户注册页面是用于普通用户的注册,因为本新闻系统注册用户可以发布新闻,这样可以减轻网站管理员的发表新闻的负担。所涉及到的程序代码如下:1.注册表单页面代码:zhuce/zhucebody.htm<form action="zhuce.asp" method="post" ><table align="center" width="630"><tr align="center"><td ><hr><b>用户注册 </b><hr></td></tr><tr ><td align="center">用户名:<input type="text" name="user"></input>*</td></tr><tr ><td align="center">密码:<input type="password" name="pwd1"></input>*</td></tr><tr><td align="center">重复密码:<input type="password" name="pwd2"></input>*</td></tr><tr><td align="center">昵称:<input type="text" name="nichen"></input>*</td></tr><tr><td align="center">出生日期:<input type="text" name="shengri"></input>*</td></tr><tr><td align="center">性别:<input type="radio" name="xb" value="男" checked="checked">男</input><input type="radio" name="xb" value="女">女</input>*</td></tr><tr><td align="center">所在地址:国家:<select name="dizhi"><option value="中国" selected="selected">中国</option></select>省份:<select name="shengfen"><option value="北京">北京</option><option value="上海">上海</option><option value="贵州"selected="selected">贵州</option><option value="广东">广东</option><option value="河北">河北</option><option value="山西">山西</option><option value="陕西">陕西</option><option value="安徽">安徽</option><option value="福建">福建</option><option value="江西">江西</option></select>*</td></tr><tr><td align="center" ><b>个人爱好:</b><br><textarea rows="10" cols="60" name="aihao"></textarea></td></tr><tr align="center"><td >验证码:<%randomize()a=int(Rnd()*10)b=int(Rnd()*10)c=int(Rnd()*10)d=int(Rnd()*10)%><img src="./image/<%=a%>.GIF"></img><img src="./image/<%=b%>.GIF"></img><img src="./image/<%=c%>.GIF"></img><img src="./image/<%=d%>.GIF"></img></td></tr><tr align="center"><td align="center">输入验证码<input type="text" name="yanzhengma"></input>*</td></tr><tr align="center"><td align="center"><input type="submit" value="提交" name="tijiao" > <input type="reset" value="重置"></td></tr><tr><td height="500"></td></tr></table></form></body>2.注册数据处理页面代码: zhuce/zhuce.asp<%If request.Form("user")="" or request.Form("pwd1")="" or request.Form("nichen")="" or request.Form("shengri")="" thenresponse.write "<center>输入不能为空!<a href='zhuceindex.asp'>返回重新填写!</a><br><center>"end ifif request.Form("user")<>"" and request.Form("pwd1")<>"" and request.Form("nichen")<>"" and request.Form("shengri") <>"" thenset cnn=server.createobject("adodb.connection")sqrcnn="Dbq="& server.MapPath("./user.mdb")&"Driver=Microsoft Access Driver (*.mdb)"cnn.open sqrcnndim gn,sqlsql="select * from user where 用户名='"& trim(request.Form("user") &"'"set gn=cnn.execute(sql)if gn.eof thensql="insert into user(用户名,密码,昵称,出生日期,性别,所在地址,个人爱好) values('"&request.Form("user")&"','"&request.Form("pwd1")&"','"&request.Form("nichen")&"','"&request.Form("shengri")&"','"&request.Form("xb")&"','"&request.Form("dizhi")&"-"&request.Form("shengfen")&"','"&request.Form("aihao")&"')"cnn.execute sqlresponse.Write "<center>注册成功!<a href='./index.asp'>点击返回首页</a></center>"elseresponse.write "<center>该用户名已经被注册!<a href='zhuceindex.asp'>返回重新注册!</a></center>"end ifend if%>4. 用户信息修改表单主要用于或得用户信息,然后方便用户更改相关信息,该页面主要用到了注册页面的代码,不同的就是多了个查询用户的相关信息操作。 页面代码:zhucexiugai.asp<%set cnn=server.createobject("adodb.connection")sqrcnn="Dbq="& server.MapPath("./user.mdb")&"Driver=Microsoft Access Driver (*.mdb)"cnn.open sqrcnndim gn,sqlsql="select * from