当前位置:   article > 正文

ASP.NET 校园BBS的设计与实现(论文+源码)_Nueve_校园论坛的设计与实现论文

校园论坛的设计与实现论文

摘    要

BBS是Bulletin Board System的缩写,即电子公告板。它是以文字为主的界面,为广大网友提供了一个彼此交流的空间。如今BBS已经在各个大学校园里普及,是学生之间交流信息,共享资源,娱乐休闲的场所,并已经成为广大学生在校生活不可获缺的一部分。

本设计具有一般网上论坛的所有功能,并体现出校园的风格。该系统提供的功能包括会员注册、个人信息查询和修改、密码找回、阅读帖子、发表帖子、帖子搜索、和会员留言等。本系统一大特点是共设置了4种不同身份的会员等级,每个等级都具有特殊的操作权限,使该系统能得到更好的维护和管理。

本文首先介绍了该系统的设计思路和需求分析,接着介绍了该系统所使用的一些关键技术,然后是对系统的详细介绍,包括系统所创建的数据库及该系统的具体功能。

关键词注册;阅读帖子;发表帖子;搜索;权限

The Design and Realization of Campus BBS Based on ASP

Abstract

Indication of Bulletin Board System, BBS is the electronic bulletin board. It was based on the text-based interface and provides a place of communicate each other for the people on the Internet. Nowadays, BBS is very popular in the campuses, where the students can enjoy the services such as the exchange of information, sharing of resources, leisure and entertainment. It plays a important part in the studying life.

In addition to all functions of the common BBS system, this design exhibits the school style. The functions of this BBS includes the registration, inquiry and change of personal information, password recovery, read the topics, published topics, search topics and send message to other members. Four levels of membership is the obvious feature of this system, because each level has special competence, so the system is easy to manage.

At first ,this paper introduces the main idea and the requirements analysis of the system at first, and some key technologies are used in this system, the next is the introduction of the system in detail, including the database and specific operations.

Key words: registration; read topics; published topics; search; privilege

目    录

1 引言

1.1 课题背景与开发目的

1.2开发环境

1.3硬件需求

 需求分析

2.1系统概述

2.2系统角色划分

3 系统总体设计

3.1关键技术

3.1.1 ASP技术

3.1.2 数据库技术

3.1.3 加密技术

3.2逻辑流程

3.3方案选择

3.3.1 数据库需求分析

3.3.2 数据库设计

3.3.3 数据库连接的实现

4 系统的完整设计与开发

4.1系统显示前的准备

4.1.1 论坛基本配置

4.2 系统主要功能分析

4.2.1 用户注册

4.2.2 论坛显示

4.2.3 发帖与回复

4.2.4 查看个人资料

4.2.5 个人好友管理

4.2.6 文章搜索功能

4.2.7 会员短消息功能

4.3权限管理详细设计

4.3.1 功能概述

4.3.2 管理员权限

4.3.3 版主权限

4.3.4 贵宾权限

    

参考文献

    

    

1 引言

1.1 课题背景与开发目的 

BBS是Bulletin Board System的缩写,即电子公告板。它是以文字为主的界面,为广大网友提供了一个彼此交流的空间。随着互联网技术的迅猛发展,网络给人们带来了很多便利,人们借助于网络进行相互交流变得更加方便。于是,以互联网为基础的网上论坛逐渐成为人们发表言论的一个平台。一些具有前卫风格的校园BBS随着互联网的普及在各大高校建立,并逐渐成为学生之间交流信息,共享资源,娱乐休闲的场所,成为广大高校学生课余生活中不可获缺的一部分。而且在不久的将来,各种各样展现自身风格的校园BBS会深入到中学甚至小学校园。

本系统采用B/S模式设计,开发目的除了作为在校学生、老师发布消息,共享资料,娱乐休闲的平台,也可成为对外展示校园的一个“活广告”。

1.2开发环境

本系统是在windows XP操作系统下,使用UltraEdit-32和DREAMWEAVER作为开发工具进行开发的。数据库使用的是ACCESS。

1.3硬件需求

在运行本系统前,请检查一下计算机是否满足以下要求。

计算机要求的配置为:

(1) WINDOWS ServicePack4.0和  Internet 信息服务器 5.0 (IIS 5.0)

(2) Microsoft Office Access2000以上版本

(3) Windows 2000/XP 简体中文版+简体中文IE5.0以上版本

2 需求分析

2.1系统概述

根据该BBS的逻辑功能划分,本系统一共分为七大功能模块,分别是用户注册和登陆模块,用户资料管理模块,文章发表和文章浏览模块,文章搜索模块,管理员操作模块,版主操作模块,论坛短消息功能模块。其中管理员操作又划分为论坛文章操作模块及论坛设置模块。用户资料管理模块可划分为用户密码重设模块,用户信息查询模块,用户资料修改模块。其功能结构图如图2.1所示。

图2-1  系统功能结构图

(1)用户注册和登陆模块

主要是完成新用户的注册,将新用户注册信息加入数据库;登陆模块主要验证用户身份,使用会员身份登陆论坛即可进入论坛并享有会员的使用权限。

(2)用户资料管理模块

主要功能是注册用户可以随意修改自己的个人信息,可随时查询其他用户的个人资料;如果不幸遗忘自己的登陆密码,还可利用本论坛的密码重设功能,重设密码,极大的方便了用户使用。

(3)文章发表和文章浏览模块

本论坛最主要的功能,登陆用户和游客都可随意点击感兴趣的帖子进行浏览,而登陆用户还可以随时在论坛里发表自己的文章,或者对论坛里的帖子进行回复。

(4)文章搜索模块

登陆用户可利用该功能对感兴趣但无法记起位置的帖子进行查找,方便用户游览论坛的一个功能。

(5)管理员操作模块

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

(6)版主操作模块

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

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

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

2.2系统角色划分

本系统操作用户按不同级别依次可分为:游客,普通会员用户、版主、管理员。高级别的用户可以继承低级别用户的公用功能。同时,各级别用户具有一定的只有以本级别身分登录才具有的私有功能。

1.游客:只能进入论坛浏览帖子,无其他权限。

2.普通会员:浏览帖子,发表或回复帖子、资料维护、文章搜索、论坛短消息。

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

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

3 系统总体设计

3.1关键技术

3.1.1 ASP技术

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

其特点归纳如下:

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

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方法允许客户端用户建立一个ActiveX Server组件实例,其所建立组件实例会随着服务器端完成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.3方案选择

3.3.1 数据库需求分析

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

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

2.论坛配置信息:包括创建时间,会员总数,论坛货币单位等。

3.版块信息:版块说明,版主等。

4.论坛帖子信息:帖子号,作者,内容,发表日期,回复数等。

5.好友信息:论坛好友的姓名,注册时间。

3.3.2 数据库设计

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

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

表3-1 BBS表中字段

字段名

数据类型

字段描述

ID

自动编号

主题帖子号ID(主键)

ForumID

数字

论坛版块号

RID

数字

回复主题帖子号ID

TopicFace

数字

作者心情贴图

Title

文本

文章标题

Content

备注

文章内容

DateTime

日期/时间

发表日期

UserName

文本

作者

IsBest

数字

是否为精华帖

IsTop

数字

是否为置顶帖

IsNews

数字

是否为论坛公告

IsLocked

数字

是否被锁

IsVote

数字

是否为投票帖

IsMana

数字

是否需要威望

ManaNum

数字

要求威望值

LastUserName

文本

最后回复人

LastDateTime

日期/时间

最后回复时间

ReadTimes

数字

浏览次数

ReTimes

数字

回复次数

表3-2 BBSForumID表中字段

字段名

数据类型

字段描述

ForumID

数字

论坛版块号ID(主键)

版块说明

文本

版块说明

版块名称

文本

版块名称

BorderUserName

文本

版主名字

表3-3 Config表中字段

字段名

数据类型

字段描述

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-4 UserGroups表中字段

字段名

数据类型

字段描述

UserGroupID

数字

组ID

GroupTitle

文本

用户组名称

GroupClass

文本

用户组分类

MinArticle

数字

需发表多少文章

TitlePic

文本

类别图

GroupClassID

数字

等级ID

表3-5 Friend表中字段

字段名

数据类型

字段描述

ID

自动编号

好友ID(主键)

UserNameMD5

文本

用户加密名称

FriendName

文本

好友名字

JoinDate

日期/时间

加为好友时间

CheckUser

数字

是否列入黑名单

表3-6 message表中字段

字段名

数据类型

字段描述

ID

数字

消息ID号(主键)

Title

文本

消息标题

content

文本

消息标内容

to_man

文本

收件人

from_man

文本

发件人

isread

数字

是否已读

表3-7 Users表中字段

字段名

数据类型

字段描述

UID

自动编号

会员ID(主键)

UserName

文本

会员姓名

UserNameMD5

文本

会员姓名加密

UserPassWord

文本

会员密码

UserQuestion

文本

密码提示问题

UserAnswer

文本

密码提示问题答案

UserHonour

文本

会员头衔

UserFace

文本

会员头像

UserSex

数字

会员性别

UserHomePage

文本

会员主页

UserEmail

文本

会员邮箱

UserSignature

文本

会员签名

UserBests

数字

会员精华帖数

UserPost

数字

会员发贴数

UserMoney

数字

会员财富

UserMana

数字

会员威望

JoinDate

日期/时间

会员注册时间

LastLoginIP

文本

上次登陆IP

UserLogins

数字

登陆次数

LastLogin

日期/时间

上次登陆时间

UserGroup

文本

会员用户组名称

UserGroupID

数字

会员等级组ID

UserGroupClass

文本

会员用户组分类

UserGroupClassID

数字

会员等级ID

IsAdmin

数字

是否为管理员

3.3.3 数据库连接的实现

数据库连接操作是一个相当频繁的操作,在ASP的数据库编程中,connection对象是我们不可能离开的一个对象,该对象是ADO对象模块中的一个专门打开和关闭数据库连接的对象,在对数据库进行任何的操作,比如更新记录,插入,删除,检索等,都必须以connection对象的建立为前提。形象地来说,connection对象就是程序与数据库沟通的管道,所有对数据库的操作,都必须经过它,因此,本系统首先建立一个connection对象的实例变量,然后才能在它的基础上建立Recordset对象实例来操作数据库。这里首先利用connection对象的属性ConnStr 设置数据库的连接方式,使用的是Access OLE DB驱动程序。

本设计还使用了server对象的Server.MapPath(Path)方法,作用是将(path)指定的虚拟路径转换为实际路径,大大提高了本系统的移植性。然后使用server.createobject方法建立connection对象的实例变量conn,使用connection对象的Open方法打开数据库连接,核心代码如下:

mdb = "Data/MyBBS.mdb" '数据库相对路径

ConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath(""&mdb&"")

Set conn = server.createobject("adodb.connection")

Conn.Open Connstr

4 系统的完整设计与开发

4.1系统显示前的准备

4.1.1 论坛基本配置

系统运行时,有些数据库里的数据是会被频繁调用的,为了便于书写代码和程序的严谨,可以将这些数据首先赋给一些变量,在后面的程序运行中直接调用变量,不用频繁的访问数据库。一些保存论坛基本信息的数据就属于这类。所以在运行时首先将论坛一些基本参数在数据库连接后即从数据库中调出,以上内容在Conn.asp文件里连接数据库后执行,其中使用connection对象的execute方法对存放基本配置信息的表进行SQL查询,还使用了Recordset对象的BOF和EOF属性,其中BOF属性表示查询数据库的指针位于第一条记录之前,则为真:EOF属性表示查询数据库的指针位于最后一条记录之后,则为真。如果两者都为真,说明数据库里并没有对应的数据,然后可关闭刚才创建的对象实例,并将其清空,释放系统资源;如果找到需要的记录,则将其数据读出到创建的变量里以便使用:

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

      Set rsConfig = conn.execute("Select * from Config")'创建一个查询数据库的对象实例

    If rsConfig.BOF And rsConfig.EOF Then'查询为空而且到最后

        rsConfig.Close'关闭变量

        Set rsConfig = Nothing'释放对象实例

        Response.Write "网站配置数据丢失!系统无法正常运行!"

        Response.End

    Else

      Site_Name = rsConfig("Site_Name")

        Site_PostNum= rsConfig("Site_PostNum")

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

    End If

进入系统时由于有些功能只针对注册会员和管理员开放的,并不是进入论坛的人都能使用,这里就涉及到一个用户身份判断的问题。本设计包含了一个用户验证功能函数的User_Auditing.asp文件,在其他程序执行前都会先执行该文件里的函数,在需要验证时不必重复书写代码,只需在需要身份验证的程序之前调用该具有验证功能的函数就行。其中的CheckUsers()函数验证会员,CheckUnAdmin()函数验证管理员或版主。本设计一大特点是使用了Cookies来暂存会员信息,主要是会员姓名、密码这两项,这一功能的实现对程序的运行是十分方便的,如上面提到的CheckUsers()函数的功能就是根据Cookies里的会员密码来验证会员是否登陆;因为一旦会员登陆后登陆处理程序会将该会员的密码暂存到Cookies中,所以只需验证当前Cookies里的会员密码是否为空就可以判断目前的用户是否登陆论坛。CheckUnAdmin()函数则是创建一个ADO对象模块的两个Recordset对象实例来访问数据库中存放管理员身份信息和版主身份信息的表,读取有关管理员或版主身份的字段进行比较判断。

Sub CheckUnAdmin()

  Set wd=server.createobject("adodb.Recordset")

SQL="Select BorderUserName from BBSForumID"

wd.Open SQL,Conn,1,1

If wd("BorderUserName")<> Request.Cookies("BBS")("UserName") Then

………’省去部分代码

4.2 系统主要功能分析

4.2.1 用户注册

在论坛主页的工具栏里是会员享有的一般操作选项,该工具栏由在User_Auditing.asp文件里定义的MyBBSTop()函数实现,同样只需在以后的页面调用该函数实现工具栏的显示。该函数一开始会先在Cookies里去查找会员姓名,如果发现会员姓名为空,则说明当前浏览论坛的用户未登陆,则工具栏中会显示未登陆的提示信息,以及显示未注册用户注册的信息。若是未注册会员,则可点击“注册”链接到注册页面,如下图:

图4-1  会员注册页面

图4-2  论坛主页面

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

图4-4  阅读帖子页面

图4-5  写新帖子页面

图4-6  会员信息页面

如果您在计算机领域有任何疑虑或不确定的地方,请毫不犹豫地与老师交流噢,我们期待着为您提供有针对性的建议和指导。您的问题和讨论对我们来说都非常重要。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/945844
推荐阅读
相关标签
  

闽ICP备14008679号