基于asp的某学校校园bbs的设计与实现 毕业设计_第1页
基于asp的某学校校园bbs的设计与实现 毕业设计_第2页
基于asp的某学校校园bbs的设计与实现 毕业设计_第3页
基于asp的某学校校园bbs的设计与实现 毕业设计_第4页
基于asp的某学校校园bbs的设计与实现 毕业设计_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于ASP的某学校校园BBS的设计与实现1引言11课题背景与开发目的BBS是BULLETINBOARDSYSTEM的缩写,即电子公告板。它是以文字为主的界面,为广大网友提供了一个彼此交流的空间。随着互联网技术的迅猛发展,网络给人们带来了很多便利,人们借助于网络进行相互交流变得更加方便。于是,以互联网为基础的网上论坛逐渐成为人们发表言论的一个平台。一些具有前卫风格的校园BBS随着互联网的普及在各大高校建立,并逐渐成为学生之间交流信息,共享资源,娱乐休闲的场所,成为广大高校学生课余生活中不可获缺的一部分。而且在不久的将来,各种各样展现自身风格的校园BBS会深入到中学甚至小学校园。本系统采用B/S模式设计,开发目的除了作为在校学生、老师发布消息,共享资料,娱乐休闲的平台,也可成为对外展示校园的一个“活广告”。12开发环境本系统是在WINDOWSXP操作系统下,使用ULTRAEDIT32和DREAMWEAVER作为开发工具进行开发的。数据库使用的是ACCESS。13硬件需求在运行本系统前,请检查一下计算机是否满足以下要求。计算机要求的配置为1WINDOWSSERVICEPACK40和INTERNET信息服务器50IIS502MICROSOFTOFFICEACCESS2000以上版本3WINDOWS2000/XP简体中文版简体中文IE50以上版本需求分析21系统概述根据该BBS的逻辑功能划分,本系统一共分为七大功能模块,分别是用户注册和登陆模块,用户资料管理模块,文章发表和文章浏览模块,文章搜索模块,管理员操作模块,版主操作模块,论坛短消息功能模块。其中管理员操作又划分为论坛文章操作模块及论坛设置模块。用户资料管理模块可划分为用户密码重设模块,用户信息查询模块,用户资料修改模块。其功能结构图如图21所示。校园BBS系统用户注册和登陆模块用户资料管理模块文章发表和浏览模块文章搜索模块管理员操作模块版主操作模块论坛短消息模块用户信息查询模块用户资料修改模块用户密码重设模块论坛文章操作模块论坛设置模块图21系统功能结构图(1)用户注册和登陆模块主要是完成新用户的注册,将新用户注册信息加入数据库;登陆模块主要验证用户身份,使用会员身份登陆论坛即可进入论坛并享有会员的使用权限。(2)用户资料管理模块主要功能是注册用户可以随意修改自己的个人信息,可随时查询其他用户的个人资料;如果不幸遗忘自己的登陆密码,还可利用本论坛的密码重设功能,重设密码,极大的方便了用户使用。(3)文章发表和文章浏览模块本论坛最主要的功能,登陆用户和游客都可随意点击感兴趣的帖子进行浏览,而登陆用户还可以随时在论坛里发表自己的文章,或者对论坛里的帖子进行回复。(4)文章搜索模块登陆用户可利用该功能对感兴趣但无法记起位置的帖子进行查找,方便用户游览论坛的一个功能。(5)管理员操作模块本论坛管理者才拥有的功能,可以对论坛中任意版块的帖子进行固顶,加精,删除等操作,还可以对论坛的一些基本设置进行修改。(6)版主操作模块论坛各个版块的具体管理者,在自己的版块有和管理员一样的管理权限,负责维护自己版块的秩序。(7)论坛短消息功能模块登陆用户可利用该功能对其他论坛用户留言,进行私下的交流。22系统角色划分本系统操作用户按不同级别依次可分为游客,普通会员用户、版主、管理员。高级别的用户可以继承低级别用户的公用功能。同时,各级别用户具有一定的只有以本级别身分登录才具有的私有功能。1游客只能进入论坛浏览帖子,无其他权限。2普通会员浏览帖子,发表或回复帖子、资料维护、文章搜索、论坛短消息。3版主除会员基本功能外,可对自己所在版块的文章进行操作。4管理员除会员基本功能外,可对所有版块的文章进行固顶,加精,删除等,并且有论坛设置修改权限。3系统总体设计31关键技术311ASP技术ASP技术是一种类似HTMLHYPERTEXTMARKUPLANGUAGE超文本标识语言、SCRIPT与CGICOMMONGATEWAYINTERFACE通用网关接口的结合体,简单的讲它是一种运行于服务器的脚本语言,但是其运行效率比CGI更高、程序编制也比HTML更方便且更有灵活性,程序安全性及保密性也远比SCRIPT好。其特点归纳如下1ASP可以和HTML或其他脚本语言VBSCRIPT与JAVASCRIPT互相嵌套。2ASP是一种在WEB服务器端运行的脚本语言,因此,程序代码完全保密。3ASP以对象为基础,因此可以使用ACTIVEX控件继续扩充其功能。4ASP内置ADO组件,因此可以轻松地存取各种数据库,大大缩短了程序开发时间。5ASP可以将运行结果以HTML的格式传送至客户端浏览器,因此ASP可以适用于各种浏览器。下面来介绍一下ASP的几个内置对象REQUEST对象,我们知道HTTP通讯协议是一种请求与响应REQUEST/RESPONSE的通讯协议,因此通常由客户端向WEB服务器提出请求,WEB服务器才会响应信息。因此在ASP中,特别将“客户端提出的要求”与“WEB服务器响应的信息”等动作封装成REQUEST对象与RESPONSE对象。换而言之,REQUEST对象通常包含了用户端的相关信息,如浏览器的种类、表头信息、表单参数及COOKIES等等。RESPONSE对象,每一种程序语言或开发工具一定都有与用户沟通的界面或函数,ASP也不例外。在ASP中负责将信息传达到用户的对象就是RESPONSE对象。SERVER对象,SERVER对象允许用户取得服务器提供的各项功能,例如,SERVER对象的CREATEOBJECT方法允许客户端用户建立一个ACTIVEXSERVER组件实例,其所建立组件实例会随着服务器端完成ASP网页的处理而自动被释放。如果希望此对象实例可以跨多个ASP网页,就要用到SESSION对象保留该组件实例,直到SESSION对象的运行时间到了,或是在其他ASP网页调用SESSION对象的ABANDON方法,此组件实例才会被释放。SESSION对象,SESSION对象在ASP程序编写中占了相当重的份量,由于网页是一种无状态的程序,因此几乎无法知道用户的浏览状态。必须通过SESSION对象记录用户的相关信息,以供用户再次对此WEB服务器提出要求时作确认,例如,在某些特定的网页中,常需要用户输入确认的账号和密码,假如这些身份确认的结果无法保留,那岂不是每一个网页都需要重新输入一次密码。换而言之,每一个SESSION的用户,WEB服务器均会自动的为它们建立一个SESSION。必须说明,SESSION对象只能适用于具备COOKIE功能的浏览器。312数据库技术在基于微软IIS/PWS的网络平台上,通过服务器端运行的ASP程序来访问后台数据库,是一种最常见的模式了。而对于小型的数据库应用需求,微软的ACCESS数据库应该是与ASP程序配套使用的首选。由于ACCESS数据库的ODBC驱动程序支持的SQL指令全,执行效率高,所以ACCESS后台数据库ASP服务器端程序客户端IE浏览器,是一个精练实用高效的组合模式。利用SQL语言,可以查询和管理自已的数据库。它由大约30条命令构成,但实际只需要少数的几个命令就可以完成相当多的工作,常用的SQL查询命令有SELECT、INSERT、DELETE、UPDATE等。313加密技术本设计在会员密码和密码问题的存储时使用了MD5加密算法来保护数据库中的重要数据。MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位的散列值。本设计在保存会员密码和密码提示问题答案时都先将传递的数据通过MD5加密后才存入数据库,故在数据库中只能看到已经加密的信息,保证了信息的安全。又因为该算法是单向加密的,所以当有数据要和保存的数据进行比较时,都是先将新数据加密再比较密文的差异。32系统流程图论坛设计按照一般操作进行设计图31系统流程图33方案选择331数据库需求分析根据系统功能和数据流程,可以确定一下数据项和数据结构1会员信息包括会员标示ID号,姓名,性别,论坛头像,论坛币,发帖数等论坛资料。2论坛配置信息包括创建时间,会员总数,论坛货币单位等。3版块信息版块说明,版主等。非论坛会员仅可阅读论坛文章管理员进入论坛显示管理员操作项论坛版主进入相应版块显示版主操作项一般会员享有的除管理权限外的一切功能NYYNNY登陆结束开始4论坛帖子信息帖子号,作者,内容,发表日期,回复数等。5好友信息论坛好友的姓名,注册时间。332数据库设计根据数据库的需求分析,酒店管理系统需要建立10个数据表,他们分别是论坛文章表(BBS),论坛版块表(BBSFORUMID),论坛配置表CONFIG,用户好友表FRIEND,论坛短消息表MESSAGE,用户等级表USERGROUPS,用户信息表USERS。各表具体信息见下表表31BBS表中字段字段名数据类型字段描述ID自动编号主题帖子号ID主键FORUMID数字论坛版块号RID数字回复主题帖子号IDTOPICFACE数字作者心情贴图TITLE文本文章标题CONTENT备注文章内容DATETIME日期/时间发表日期USERNAME文本作者ISBEST数字是否为精华帖ISTOP数字是否为置顶帖ISNEWS数字是否为论坛公告ISLOCKED数字是否被锁ISVOTE数字是否为投票帖ISMANA数字是否需要威望MANANUM数字要求威望值LASTUSERNAME文本最后回复人LASTDATETIME日期/时间最后回复时间READTIMES数字浏览次数RETIMES数字回复次数表32BBSFORUMID表中字段字段名数据类型字段描述FORUMID数字论坛版块号ID主键版块说明文本版块说明版块名称文本版块名称BORDERUSERNAME文本版主名字表33CONFIG表中字段字段名数据类型字段描述SITE_NAME文本系统名字SITE_BUILDDATE文本系统创建时间SITE_POSTNUM数字论坛发帖数SITE_TOPICNUM数字论坛主题帖数SITE_USERNUM文本论坛会员数SITE_LASTUSER文本论坛最近注册会员SITE_CHECKREG数字是否允许新会员注册SITE_REGWORD文本注册校验码SITE_MONEYUNIT文本论坛货币单位SITE_POSTMONEY数字发帖收入SITE_REPLYMONEY数字回复收入SITE_MSGMONEY数字发送消息消耗货币表34USERGROUPS表中字段字段名数据类型字段描述USERGROUPID数字组IDGROUPTITLE文本用户组名称GROUPCLASS文本用户组分类MINARTICLE数字需发表多少文章TITLEPIC文本类别图GROUPCLASSID数字等级ID表35FRIEND表中字段字段名数据类型字段描述ID自动编号好友ID主键USERNAMEMD5文本用户加密名称FRIENDNAME文本好友名字JOINDATE日期/时间加为好友时间CHECKUSER数字是否列入黑名单表36MESSAGE表中字段字段名数据类型字段描述ID数字消息ID号主键TITLE文本消息标题CONTENT文本消息标内容TO_MAN文本收件人FROM_MAN文本发件人ISREAD数字是否已读表37USERS表中字段字段名数据类型字段描述UID自动编号会员ID主键USERNAME文本会员姓名USERNAMEMD5文本会员姓名加密USERPASSWORD文本会员密码USERQUESTION文本密码提示问题USERANSWER文本密码提示问题答案USERHONOUR文本会员头衔USERFACE文本会员头像USERSEX数字会员性别USERHOMEPAGE文本会员主页USEREMAIL文本会员邮箱USERSIGNATURE文本会员签名USERBESTS数字会员精华帖数USERPOST数字会员发贴数USERMONEY数字会员财富USERMANA数字会员威望JOINDATE日期/时间会员注册时间LASTLOGINIP文本上次登陆IPUSERLOGINS数字登陆次数LASTLOGIN日期/时间上次登陆时间USERGROUP文本会员用户组名称USERGROUPID数字会员等级组IDUSERGROUPCLASS文本会员用户组分类USERGROUPCLASSID数字会员等级IDISADMIN数字是否为管理员333数据库连接的实现数据库连接操作是一个相当频繁的操作,在ASP的数据库编程中,CONNECTION对象是我们不可能离开的一个对象,该对象是ADO对象模块中的一个专门打开和关闭数据库连接的对象,在对数据库进行任何的操作,比如更新记录,插入,删除,检索等,都必须以CONNECTION对象的建立为前提。形象地来说,CONNECTION对象就是程序与数据库沟通的管道,所有对数据库的操作,都必须经过它,因此,本系统首先建立一个CONNECTION对象的实例变量,然后才能在它的基础上建立RECORDSET对象实例来操作数据库。这里首先利用CONNECTION对象的属性CONNSTR设置数据库的连接方式,使用的是ACCESSOLEDB驱动程序。本设计还使用了SERVER对象的SERVERMAPPATH(PATH)方法,作用是将(PATH)指定的虚拟路径转换为实际路径,大大提高了本系统的移植性。然后使用SERVERCREATEOBJECT方法建立CONNECTION对象的实例变量CONN,使用CONNECTION对象的OPEN方法打开数据库连接,核心代码如下MDB“DATA/MYBBSMDB“数据库相对路径CONNSTR“PROVIDERMICROSOFTJETOLEDB40DATASOURCE“全部论坛校园新闻省去部分代码当确定查询条件后,如选择“关键词搜索”,输入“我是”,然后“日期范围”定为30天,查找范围为“全部论坛”,就会根据“关键词”,“30天”,“全部论坛”这3个条件进行查询,得到相关文章信息图410搜索结果页面根据条件处理程序代码,“RADIO“表示为单选框,根据“VALUE”确定是使用“关键词”,于是SQL语句条件为“LIKE”模糊查询;如果这里选择是的以“作者”作为查询条件,则SQL语句的条件中直接接上传递的作者姓名,不用模糊查询;然后选择版块为“全部论坛”,其值为空,则不加限定,搜索全部版块号;日期限定“TIMELIMIT”不为空,则当前日期减去发帖日期小于限定的“30天”的帖子符合要求FORUMIDTRIMREQUESTFORM“FORUMID“SEARCHMAYHTMLENCODETRIMREQUESTFORM“SEARCH“CONTENTTRIMREQUESTFORM“CONTENT“TIMELIMITTRIMREQUESTFORM“TIMELIMIT“SQL“SELECTFROMBBSWHERERID0“IFSEARCH“KEY“THENSQLSQL“ANDTITLELIKE“CONTENT“ELSESQLSQL“ANDUSERNAME“CONTENT“ENDIFIFFORUMID“THENSQLSQL“ANDFORUMID“FORUMID“IFTIMELIMIT“THENSQLSQL“ANDDAYNOWDATETIME来自的留言省去部分代码“回复该留言43权限管理详细设计431功能概述论坛权限管理是为了保证系统的安全性和稳定性,论坛的每个用户只能看到和权限相对应的页面和执行权限所允许的操作,由于不同用户的权限不同,这样保证了每位用户都能更好的使用自己的权限,履行自己的职责,能保证论坛良好的秩序。用户等级前面已经列出,这里不再累述。432管理员权限论坛管理员是论坛最高级别的用户,拥有管理该论坛的所有权限,可以对论坛的所有版块的文章进行管理,还可以修改论坛系统的基本设置。管理员的身份在数据库USERS表中以“ISADMIN”字段是否为“1”表示。当会员登陆时,都会首先创建RECORDSET对象实例来访问数据库里上面所说的字段,如果为1,说明该用户是管理员,则用户信息栏里会显示两项管理员操作项。以上处理程序在系统一开始就处理的USER_AUDITINGASP文件中进行图411管理员操作栏管理员可在“系统设置”中对论坛的基本信息进行修改,这里实现原理同上面一样,利用传递数据的METHOD“POST“,将重新填写的数据传递给处理数据的一个自定义函数,该函数创建RECORDSET对象实例将信息写到数据库里的CONFIG表图412管理员操作栏管理员可在“会员列表”中查看目前论坛的注册用户图413会员信息这里关键代码是使用了DOWHILELOOP循环,将数据库里的数据全部读出DOWHILENOTRSEOF省去部分显示数据库内容的代码循环结束RSMOVENEXTLOOP用户以管理员身份进入论坛的任一版块后,都会出现以下对帖子进行操作的选项,这些同样是先通过对“ISADMIN”字段进行判断,为真后才会显示操作及其处理程序的链接图414管理员进入版块而这些选项又根据对应情况的字段值为0为1显示对应的状态,在判断管理员身份为真后接着判断相应字段,在文件开始就已经创建一个RECORDSET对象实例查询存放帖子的表,后面都是以该实例进行操作。下面以是否精华为例IFWC“ISBEST“THE_FALSETHENRESPONSEWRITE“精“ELSERESPONSEWRITE“取消精华“ENDIF然后可进行相应操作,这里以“加精”为例说明,当点击“精”时,链接到“POSTINGSASP”文件里的处理程序中,将处理的动作和要处理的帖子ID号一同传递给处理程序,该处理程序主要功能就是创建两个RECORDSET对象实例查询存放帖子的表和用户信息表,其中一个将该帖子的“精华”字段的值置1,另一个再将作者的“精华帖”数增加1,然后提示并返回。这里比较关键的一点是首先要将帖子的作者姓名赋给一个变量,然后才能以这个标量为条件查询用户信息表中的数据,完成后则显示如图图415帖子被设为“精华”处理代码如下TOPICIDREQUEST“TOPICID“SQL“SELECTISBEST,USERNAMEFROMBBSWHEREID“TOPICID“ANDRID0“IFRS“ISBEST“THE_FALSETHENRS“ISBEST“THE_TRUERSUPDATE取消“精华”处理流程一致,区别尽在于对“ISBEST“字段的置1和置0。433版主权限版主是某个版块内的直接管理者,在自己的版块里对帖子的管理权限与管理员一致,但任何两个版块间的版主不能跨版块操作,上述情况通过不同的版块ID号限制其版主的权限。有关版块ID号的表的内容如下图416版块数据库内容在进入版块页面后在判断完用户不是管理员后,将新建一个RECORDSET对象实例查询版块信息表,查询条件以当前版块号为准,如在第一个版块,则SQL“SELECTBORDERUSERNAMEFROMBBSFORUMIDWHEREFORUMID1“至于版主对帖子的管理则和管理员使用时的处理程序一致,就不再累述。434贵宾权限贵宾是论坛的高级用户,享有与普通会员不同的一些特殊权限,可以享有优于普通会员的待遇,当然也是为了协助管理员及版主更好的管理论坛。1贵宾可以给论坛的任意帖子进行“加精”的操作图417贵宾用户才有的“加精”权力在显示加精操作的程序代码里,判断完管理员及版主身份和,较其他操作会多一段新建一个RECORDSET对象实例查询用户信息表的代码,本论坛中以“USERGROUPID”字段为3表示该会员为贵宾。将COOKIES中会员姓名与贵宾姓名比较,是贵宾的话则同样显示加精操作的选项,至于加精

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论