基于ASP的某学校校园BBS的毕业设计Word文档下载推荐.docx

上传人:b****2 文档编号:3775998 上传时间:2023-05-02 格式:DOCX 页数:34 大小:367.61KB
下载 相关 举报
基于ASP的某学校校园BBS的毕业设计Word文档下载推荐.docx_第1页
第1页 / 共34页
基于ASP的某学校校园BBS的毕业设计Word文档下载推荐.docx_第2页
第2页 / 共34页
基于ASP的某学校校园BBS的毕业设计Word文档下载推荐.docx_第3页
第3页 / 共34页
基于ASP的某学校校园BBS的毕业设计Word文档下载推荐.docx_第4页
第4页 / 共34页
基于ASP的某学校校园BBS的毕业设计Word文档下载推荐.docx_第5页
第5页 / 共34页
基于ASP的某学校校园BBS的毕业设计Word文档下载推荐.docx_第6页
第6页 / 共34页
基于ASP的某学校校园BBS的毕业设计Word文档下载推荐.docx_第7页
第7页 / 共34页
基于ASP的某学校校园BBS的毕业设计Word文档下载推荐.docx_第8页
第8页 / 共34页
基于ASP的某学校校园BBS的毕业设计Word文档下载推荐.docx_第9页
第9页 / 共34页
基于ASP的某学校校园BBS的毕业设计Word文档下载推荐.docx_第10页
第10页 / 共34页
基于ASP的某学校校园BBS的毕业设计Word文档下载推荐.docx_第11页
第11页 / 共34页
基于ASP的某学校校园BBS的毕业设计Word文档下载推荐.docx_第12页
第12页 / 共34页
基于ASP的某学校校园BBS的毕业设计Word文档下载推荐.docx_第13页
第13页 / 共34页
基于ASP的某学校校园BBS的毕业设计Word文档下载推荐.docx_第14页
第14页 / 共34页
基于ASP的某学校校园BBS的毕业设计Word文档下载推荐.docx_第15页
第15页 / 共34页
基于ASP的某学校校园BBS的毕业设计Word文档下载推荐.docx_第16页
第16页 / 共34页
基于ASP的某学校校园BBS的毕业设计Word文档下载推荐.docx_第17页
第17页 / 共34页
基于ASP的某学校校园BBS的毕业设计Word文档下载推荐.docx_第18页
第18页 / 共34页
基于ASP的某学校校园BBS的毕业设计Word文档下载推荐.docx_第19页
第19页 / 共34页
基于ASP的某学校校园BBS的毕业设计Word文档下载推荐.docx_第20页
第20页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于ASP的某学校校园BBS的毕业设计Word文档下载推荐.docx

《基于ASP的某学校校园BBS的毕业设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于ASP的某学校校园BBS的毕业设计Word文档下载推荐.docx(34页珍藏版)》请在冰点文库上搜索。

基于ASP的某学校校园BBS的毕业设计Word文档下载推荐.docx

本论坛管理者才拥有的功能,可以对论坛中任意版块的帖子进行固顶,加精,删除等操作,还可以对论坛的一些基本设置进行修改。

(6)版主操作模块

论坛各个版块的具体管理者,在自己的版块有和管理员一样的管理权限,负责维护自己版块的秩序。

(7)论坛短消息功能模块

登陆用户可利用该功能对其他论坛用户留言,进行私下的交流。

2.2系统角色划分

本系统操作用户按不同级别依次可分为:

游客,普通会员用户、版主、管理员。

高级别的用户可以继承低级别用户的公用功能。

同时,各级别用户具有一定的只有以本级别身分登录才具有的私有功能。

1.游客:

只能进入论坛浏览帖子,无其他权限。

2.普通会员:

浏览帖子,发表或回复帖子、资料维护、文章搜索、论坛短消息。

3.版主:

除会员基本功能外,可对自己所在版块的文章进行操作。

4.管理员:

除会员基本功能外,可对所有版块的文章进行固顶,加精,删除等,并且有论坛设置修改权限。

3系统总体设计

3.1关键技术

3.1.1ASP技术

ASP技术是一种类似HTML(HypertextMarkupLanguage超文本标识语言)、Script与CGI(CommonGatewayInterface通用网关接口)的结合体,简单的讲它是一种运行于服务器的脚本语言,但是其运行效率比CGI更高、程序编制也比HTML更方便且更有灵活性,程序安全性及保密性也远比Script好。

其特点归纳如下:

1.ASP可以和HTML或其他脚本语言(VBScript与JavaScript)互相嵌套。

2.ASP是一种在Web服务器端运行的脚本语言,因此,程序代码完全保密。

3.ASP以对象为基础,因此可以使用ActiveX控件继续扩充其功能。

4.ASP内置ADO组件,因此可以轻松地存取各种数据库,大大缩短了程序开发时间。

5.ASP可以将运行结果以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功能的浏览器。

3.1.2数据库技术

在基于微软IIS/PWS的网络平台上,通过服务器端运行的ASP程序来访问后台数据库,是一种最常见的模式了。

而对于小型的数据库应用需求,微软的Access数据库应该是与ASP程序配套使用的首选。

由于Access数据库的ODBC驱动程序支持的SQL指令全,执行效率高,所以Access后台数据库+ASP服务器端程序+客户端IE浏览器,是一个精练实用高效的组合模式。

利用SQL语言,可以查询和管理自已的数据库。

它由大约30条命令构成,但实际只需要少数的几个命令就可以完成相当多的工作,常用的SQL查询命令有:

Select、Insert、Delete、Update等。

3.1.3加密技术

本设计在会员密码和密码问题的存储时使用了MD5加密算法来保护数据库中的重要数据。

MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位的散列值。

本设计在保存会员密码和密码提示问题答案时都先将传递的数据通过MD5加密后才存入数据库,故在数据库中只能看到已经加密的信息,保证了信息的安全。

又因为该算法是单向加密的,所以当有数据要和保存的数据进行比较时,都是先将新数据加密再比较密文的差异。

3.2系统流程图

论坛设计按照一般操作进行设计:

图3-1系统流程图

3.3方案选择

3.3.1数据库需求分析

根据系统功能和数据流程,可以确定一下数据项和数据结构:

1.会员信息:

包括会员标示ID号,姓名,性别,论坛头像,论坛币,发帖数等论坛资料。

2.论坛配置信息:

包括创建时间,会员总数,论坛货币单位等。

3.版块信息:

版块说明,版主等。

4.论坛帖子信息:

帖子号,作者,内容,发表日期,回复数等。

5.好友信息:

论坛好友的姓名,注册时间。

3.3.2数据库设计

根据数据库的需求分析,酒店管理系统需要建立10个数据表,他们分别是:

论坛文章表(BBS),论坛版块表(BBSForumID),论坛配置表(Config),用户好友表(Friend),论坛短消息表(message),用户等级表(UserGroups),用户信息表(Users)。

各表具体信息见下表:

表3-1BBS表中字段

字段名

数据类型

字段描述

ID

自动编号

主题帖子号ID(主键)

ForumID

数字

论坛版块号

RID

回复主题帖子号ID

TopicFace

作者心情贴图

Title

文本

文章标题

Content

备注

文章内容

DateTime

日期/时间

发表日期

UserName

作者

IsBest

是否为精华帖

IsTop

是否为置顶帖

IsNews

是否为论坛公告

IsLocked

是否被锁

IsVote

是否为投票帖

IsMana

是否需要威望

ManaNum

要求威望值

LastUserName

最后回复人

LastDateTime

最后回复时间

ReadTimes

浏览次数

ReTimes

回复次数

表3-2BBSForumID表中字段

论坛版块号ID(主键)

版块说明

版块名称

BorderUserName

版主名字

 

表3-3Config表中字段

Site_Name

系统名字

Site_BuildDate

系统创建时间

Site_PostNum

论坛发帖数

Site_TopicNum

论坛主题帖数

Site_UserNum

论坛会员数

Site_LastUser

论坛最近注册会员

Site_CheckReg

是否允许新会员注册

Site_RegWord

注册校验码

Site_MoneyUnit

论坛货币单位

Site_PostMoney

发帖收入

Site_ReplyMoney

回复收入

Site_MsgMoney

发送消息消耗货币

表3-4UserGroups表中字段

UserGroupID

组ID

GroupTitle

用户组名称

GroupClass

用户组分类

MinArticle

需发表多少文章

TitlePic

类别图

GroupClassID

等级ID

表3-5Friend表中字段

好友ID(主键)

UserNameMD5

用户加密名称

FriendName

好友名字

JoinDate

加为好友时间

CheckUser

是否列入黑名单

表3-6message表中字段

消息ID号(主键)

消息标题

content

消息标内容

to_man

收件人

from_man

发件人

isread

是否已读

表3-7Users表中字段

UID

会员ID(主键)

会员姓名

会员姓名加密

UserPassWord

会员密码

UserQuestion

密码提示问题

UserAnswer

密码提示问题答案

UserHonour

会员头衔

UserFace

会员头像

UserSex

会员性别

UserHomePage

会员主页

UserEmail

会员邮箱

UserSignature

会员签名

UserBests

会员精华帖数

UserPost

会员发贴数

UserMoney

会员财富

UserMana

会员威望

会员注册时间

LastLoginIP

上次登陆IP

UserLogins

登陆次数

LastLogin

上次登陆时间

UserGroup

会员用户组名称

会员等级组ID

UserGroupClass

会员用户组分类

UserGroupClassID

会员等级ID

IsAdmin

是否为管理员

3.3.3数据库连接的实现

数据库连接操作是一个相当频繁的操作,在ASP的数据库编程中,connection对象是我们不可能离开的一个对象,该对象是ADO对象模块中的一个专门打开和关闭数据库连接的对象,在对数据库进行任何的操作,比如更新记录,插入,删除,检索等,都必须以connection对象的建立为前提。

形象地来说,connection对象就是程序与数据库沟通的管道,所有对数据库的操作,都必须经过它,因此,本系统首先建立一个connection对象的实例变量,然后才能在它的基础上建立Recordset对象实例来操作数据库。

这里首先利用connection对象的属性ConnStr设置数据库的连接方式,使用的是AccessOLEDB驱动程序。

本设计还使用了server对象的Server.MapPath(Path)方法,作用是将(path)指定的虚拟路径转换为实际路径,大大提高了本系统的移植性。

然后使用server.createobject方法建立connection对象的实例变量conn,使用connection对象的Open方法打开数据库连接,核心代码如下:

mdb="

Data/MyBBS.mdb"

'

数据库相对路径

ConnStr="

Provider=Microsoft.Jet.OLEDB.4.0;

DataSource="

&

Server.MapPath("

"

&

mdb&

Setconn=server.createobject("

adodb.connection"

Conn.OpenConnstr

4系统的完整设计与开发

4.1系统显示前的准备

4.1.1论坛基本配置

系统运行时,有些数据库里的数据是会被频繁调用的,为了便于书写代码和程序的严谨,可以将这些数据首先赋给一些变量,在后面的程序运行中直接调用变量,不用频繁的访问数据库。

一些保存论坛基本信息的数据就属于这类。

所以在运行时首先将论坛一些基本参数在数据库连接后即从数据库中调出,以上内容在Conn.asp文件里连接数据库后执行,其中使用connection对象的execute方法对存放基本配置信息的表进行SQL查询,还使用了Recordset对象的BOF和EOF属性,其中BOF属性表示查询数据库的指针位于第一条记录之前,则为真:

EOF属性表示查询数据库的指针位于最后一条记录之后,则为真。

如果两者都为真,说明数据库里并没有对应的数据,然后可关闭刚才创建的对象实例,并将其清空,释放系统资源;

如果找到需要的记录,则将其数据读出到创建的变量里以便使用:

'

=========读取论坛基本设置========

SetrsConfig=conn.execute("

Select*fromConfig"

)'

创建一个查询数据库的对象实例

IfrsConfig.BOFAndrsConfig.EOFThen'

查询为空而且到最后

rsConfig.Close'

关闭变量

SetrsConfig=Nothing'

释放对象实例

Response.Write"

网站配置数据丢失!

系统无法正常运行!

Response.End

Else

Site_Name=rsConfig("

Site_Name"

Site_PostNum=rsConfig("

Site_PostNum"

………………………’省去部分代码

EndIf

进入系统时由于有些功能只针对注册会员和管理员开放的,并不是进入论坛的人都能使用,这里就涉及到一个用户身份判断的问题。

本设计包含了一个用户验证功能函数的User_Auditing.asp文件,在其他程序执行前都会先执行该文件里的函数,在需要验证时不必重复书写代码,只需在需要身份验证的程序之前调用该具有验证功能的函数就行。

其中的CheckUsers()函数验证会员,CheckUnAdmin()函数验证管理员或版主。

本设计一大特点是使用了Cookies来暂存会员信息,主要是会员姓名、密码这两项,这一功能的实现对程序的运行是十分方便的,如上面提到的CheckUsers()函数的功能就是根据Cookies里的会员密码来验证会员是否登陆;

因为一旦会员登陆后登陆处理程序会将该会员的密码暂存到Cookies中,所以只需验证当前Cookies里的会员密码是否为空就可以判断目前的用户是否登陆论坛。

CheckUnAdmin()函数则是创建一个ADO对象模块的两个Recordset对象实例来访问数据库中存放管理员身份信息和版主身份信息的表,读取有关管理员或版主身份的字段进行比较判断。

SubCheckUnAdmin()

Setwd=server.createobject("

adodb.Recordset"

SQL="

SelectBorderUserNamefromBBSForumID"

wd.OpenSQL,Conn,1,1

Ifwd("

BorderUserName"

)<

>

Request.Cookies("

BBS"

)("

UserName"

)Then

………’省去部分代码

4.2系统主要功能分析

4.2.1用户注册

在论坛主页的工具栏里是会员享有的一般操作选项,该工具栏由在User_Auditing.asp文件里定义的MyBBSTop()函数实现,同样只需在以后的页面调用该函数实现工具栏的显示。

该函数一开始会先在Cookies里去查找会员姓名,如果发现会员姓名为空,则说明当前浏览论坛的用户未登陆,则工具栏中会显示未登陆的提示信息,以及显示未注册用户注册的信息。

若是未注册会员,则可点击“注册”链接到注册页面,如下图:

图4-1会员注册页面

用户进入该页面根据要求填写上述必要的信息后,会通过表单传递的“POST”方法将输入的内容传递给后台处理页面的Reg()函数对信息进行处理,其中在传递“用户名”、“密码”及“密码问题”等信息时又调用了MayHTMLEncode和ReplaceBadChar函数。

其中MayHTMLEncode函数的功能是将一些特殊符号替换成浏览器识别的符号,而ReplaceBadChar函数的功能是过滤非法的SQL字符。

从而保证了用户名等信息符合网页设计的要求。

当以上所有的数据都审核通过后,Reg函数便将返回的内容传递给自定义变量,然后创建一个ADO对象模块的Recordset对象实例来访问数据库的用户信息表,同样使用了Recordset对象的BOF和EOF属性来查看此用户名是否已被注册,使用一条If…else条件语句将条件定为Not(rs.EofAndrs.Bof),若为真,即数据不为空,说明用户名已被注册,则以Response对象的Redirect方法提示用户重新注册,保证了会员名的唯一性,方便论坛的管理。

若条件为假,则执行else以后的操作,即创建Recordset对象实例来将当前新的用户信息添加到数据库的用户信息表里,并将新会员数加1更新,完成注册功能,同时将所有注册后的会员信息写入Cookies中。

页面提示用户注册成功,以Response对象的Redirect方法跳转回论坛主页面,此时会员就可以享用所有会员权限,尽情游览论坛。

Response对象的Redirect方法是实现页面的跳转,使当前页面跳转到指定的页面。

本设计中都是以ClueInfo.asp文件中的函数来提示操作完成的信息或错误信息。

当操作成功时,则调用ClueInfo.asp文件中的“Yes”函数,该函数即是显示成功操作的信息,并将页面跳转链接重新定义回主页面;

如果发生错误,则调用ClueInfo.asp文件中的“OtherErr”函数,该函数即是显示错误信息,然后同样将页面跳转链接重新定义回主页面,使用户可以重新操作。

4.2.2论坛显示

下图是论坛主页面,里面的分割区域将论坛五个话题不同的版块分别显示:

图4-2论坛主页面

考虑到用户访问及发帖的需要,在每个版块中以“ForumId”为不同的值表示不同的版块。

版块结构中分别创建了2个Recordset对象实例来访问数据库,一个对象实例以代表版块号的“ForumId”的值为查询条件查询存放版块信息的表,将数据库里存放的版块内容和版主名字读出,并将内容以Response对象的Write方法显示到页面上;

另一个对象实例以代表版块号的“ForumId”的值为查询条件查询存放在该版块所发表的文章的表,为保证所查询的结果为最近的一条信息,在查询语句中“Top1”和“orderbydatetime”两个查询条件将时间最近的第一条信息以Response对象的Write方法将显示到页面上,查询语句的核心代码如下:

sql="

SelectTop1*FromBBSWhereForumId=?

orderbydatetime"

用户任意点击一个版块名称即链接到相应版块:

图4-3论坛“校园新闻”版块页面

该页面关键技术是调用的Session对象。

除了在很多地方创建Recordset对象实例来访问数据库的表外,有时还必须根据需要对当前版块号“ForumId”进行保存,目的是在任意版块发帖的时候,能够将该帖子所要显示的版块号一起写入数据库,保证在哪个版块里发表的帖子能在哪个版块里显示,从而避免在不同版块发表文章却因为版块切换而造成的版块ID号与所要求的ID号不一致,不能正常显示的问题。

利用Session对象的特点就可以解决这个问题。

所以每个版块页面一开始都会先将版块号用Session对象保存。

然后在其他地方则都是创建Recordset对象实例来访问数据库的表,然后根据表中字段情况做不同的处理。

每个版块都分为两部分,一个部分是显示论坛公告等一系列重要主题的区域,另一部分则是显示普通文章的区域。

所以在重要主题区域都会创建一个Recor

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 临时分类 > 批量上传

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2