电子论坛的设计与实现毕业设计.docx
《电子论坛的设计与实现毕业设计.docx》由会员分享,可在线阅读,更多相关《电子论坛的设计与实现毕业设计.docx(46页珍藏版)》请在冰豆网上搜索。
电子论坛的设计与实现毕业设计
电子论坛的设计与实现毕业设计
Contents
第1章引言
1.1课题背景
论坛服务已经是互联网上的一种极为常见的互动交流服务。
论坛可以为网友提供开放性的分类讨论区专题服务,网友们可以在此发表自己的观感,交流某些技术,经验乃至人生的感悟与忧欢,亦可以作为用户和商家交流的渠道,商家也可以在此回答用户提出的问题或发布某些消息。
1.2国内外研究现状
BBS起源于20世纪初。
最初,论坛只是用于发布公共信息和讨论问题的在线交流平台;后来,随着网络的普及,论坛的功能也越来越丰富,不仅仅可以发表文字,更是可以使用多媒体,受到了广大网民的欢迎。
因此,商业网站对论坛重视起来,纷纷在自己的网站上开辟论坛,作为与网民交流的园地,同时在线技术支持和在线服务也在论坛中开展起来。
1.3课题的研究意义
目前呈几何增长的互联网网站中,有相当一部分仍固守“静态”,无形中已大大落后于时代的步伐。
所谓“静态”指的就是网站的网页内容“固定不变”,当用户浏览器通过互联网的HTTP(HypertextTransportProtocol)协议向WEB服务器请求提供网页内容时,服务器仅仅是将原已设计好的静态HTML文档传送给用户浏览器。
其页面的内容使用的仅仅是标准的HTML代码,最多再加上流行的GIF89A格式的动态图片,比如产生几只小狗小猫跑来跑去的动画效果。
若网站维护者要更新网页的内容,就必须手动地来更新其所有的HTML文档。
“静态”网站的致命弱点就是不易维护,为了不断更新网页内容,你必须不断地重复制作HTML文档,随着网站内容和信息量的日益扩增,你就会感到工作量大得出乎想象。
所谓“动态”就是指具有以下几个特点的网站:
1.“交互性”即网页会根据用户的要求和选择而动态改变和响应,将浏览器作为客户端界面,这将是今后WEB发展的大势所趋。
2.“自动更新”即无须手动地更新HTML文档,便会自动生成新的页面,可以大大节省工作量。
3.“因时因人而即当不同的时间、不同的人访问同一网址时会产生不同的页面。
这种具有动态特性的网站的典型代表就是-------论坛.
第2章系统分析
2.1相关术语解释
HTML语言:
在网上发布消息,必须使用一种每一台计算机都能够识别的语言,这就是HTML(HyperTextMarkupLanguage),超文本语言。
使用HTML语言可以赋予网络设计者许多强有力的工具,比如:
1.使用各种基础的印刷元素例如标题、文字、表格、列表、照片、插图等来发布在线的文档。
2.通过超文本链接可以使用户方便地在各种信息之间切换,就像单击一个按钮一样简单。
3.设计一种表单控件控制网络上的各种传输、远程服务等功能,就像查询信息、订购货物等。
4.在文档中直接包含视频剪接、效片断、各种脚本程序和另外的许多对象,比如Flash和Active控件。
以上的这些功能是一般的文档不能完全做到的。
这些优势使得HTML成为网络上使用的事实标准。
ASP语言:
在网络程序设计中,ASP(ActiveServerPages)是服务器端的一种未经编译的开放式程序,程序设计者可按ASP的要求来编写功能强大的网络应用程序,并实现服务器端的数据处理及数据上传与下载。
这种程序通常被称作“ASP程序”(或“ASP页”)。
一个ASP程序通常包括HTML标签语句、文本和脚本程序等。
由于这类程序是以“.asp”为扩展名存放的,因此对应的文件可称作“ASP文件”。
一个ASP程序的语句串,部分来自于脚本语言,部分来自于HTML。
其中,用HTML语言设计的程序称作HTML文档,是由客户端浏览器解释执行的一种程序;用脚本语言设计的部分,则是专职服务器来运行的。
2.2ACCESS数据库
Access是一种关系型数据库管理系统,其主要特点如下:
(1)存储方式单一
(2)面向对象
(3)界面友好、易操作
(4)集成环境、处理多种数据信息
(5)Access支持ODBC(开发数据库互连,OpenDataBaseConnectivity),利用Access强大的DDE(动态数据交换)和OLE(对象的联接和嵌入)特性,可以在一个数据表中嵌入位图、声音、Excel表格、Word文档,还可以建立动态的数据库报表和窗体等。
Access还可以将程序应用于网络,并与网络上的动态数据相联接。
利用数据库访问页对象生成HTML文件,轻松构建Internet/Intranet的应用。
2.3系统需求分析
随着时代的进步,人们对网络的要求也越来越高,论坛就是在这种背景下诞生的。
它不仅包含了网站原有的特点,还可以让人们在浏览网页的情况下还可以发表自己的观点,其实这只是最基本的,它还有许多优点,下面就让我们简洁的陈述一下:
2.3.1用户功能
(1)发帖时自动记录用户名,Email,网友无需每次都输入。
(2)用户个人信息记录,密码提示功能,当用户忘记密码时,可以由密码提示功能获得密码。
(3)实现用户头像功能,您可以象QQ一样,选择自己喜欢的头像图标。
(4)查询与更改密码、个人信息,及他人信息。
(5)实现游客浏览功能,你即使不进行注册,同样可以浏览帖子内容,但要发言必须注册。
缓存保存用户名和密码功能,勿需每次发言都要填写一次,为用户提供方便。
版主功能:
(1)版面显示版主主页地址(版主只需在个人信息中维护自己的信息,输入主页地址即可。
(2)版主登录之后可以进入版主管理菜单,可以管理论坛版面,管理精华区域,版主帖子查询,编辑版面说明等功能。
查询功能:
我们的论坛系统具有超强帖子查询功能,可以根据您感兴趣的内容快速获得信息。
您可以:
(1)按发言人、主题、内容的查询;
(2)按帖子的ID查询;
(3)查询最新50帖;
(4)支持多条件复合模糊查询功能。
2.3.2统计功能
(1)显示论坛当前注册总人数、当前帖子总数、帖子点击总数、当前在线人数。
(2)论坛排行榜,对各个版面的点击数、文章数进行排序。
(3)用户表现积分排行,调动用户积极性。
帖子点击统计,方便了解热点话题。
本日版面排行榜,本日作者排行榜。
2.3.3帖子功能
(1)显示帖子发表日期,点击数,字节数,回复帖子数,新帖图形提示,24小时内新帖一目了然。
(2)设定帖子内容最大允许的字节数。
是否允许显示前帖内容(如同回复EMAIL一样回复帖子)。
回复帖子EMAIL通知功能,自动将帖子内容和相关链接寄回被回复人的信箱中。
多版面设置,每个版面可以有自己的版主、主页连接,可以独立显示单一版面。
2.3.4版面功能
(1)具有强大的分页查看工具条,帖子列表支持分页显示,轻松查看所有帖子。
(2)帖子层次列表,结构清晰,一目了然。
2.3.5其他功能
(1)全面转化HTMLTAG,方便讨论主页设计、Web编程,同时可以有效防止使用脚本语言进行攻击。
(2)类似于FrontPage、Dreamweaver论坛内容编辑器,以方便网友使用HTML格式显示帖子内容。
此功能代码部分参考了UBB代码。
UBB代码是HTML的一个变种,是UltimateBulletinBoard(国外一个BBS程序,国内也有不少地方使用这个程序),采用的一种特殊的TAG来达到HTML的效果或实现其他的功能。
论坛的对象不是孤立的,它们是紧密联系的,下面是论坛各个对象之间的关联表,关联是单向的,是指左侧对象对上方对象的活动。
无关联的用×表示,如果两者只要单向关联,那么在另一个对象关联时用√表示。
表2-1各对象之间的关系表
用户
版面
公共信息
帖子
管理员
用户
注册修改浏览联系
浏览
浏览发布
浏览发布修改删除
√
版面
√
×
×
×
√
公共信息
√
×
×
×
√
帖子
√
×
×
×
√
管理员
删除授权
添加删除修改
添加删除修改
添加删除修改
×
至此,论坛的需要分析完成,接下来是论坛的功能设计。
2.4统功能描述
2.4.1主要功能
首先从用户开始,用户关联的对象是自身,版面,公共信息,帖子。
分别根据用户与这些对象的联系给出一个明确的菜单
表2-2用户功能表
序号
功能名称
说明
1
用户注册
用户在论坛填写必要信息就可以成为注册用户,注册后,可修改自己的注册信息
2
用户登录
用户注册后可使用用户名,密码登录,可选择用户名,密码保存期限
3
浏览用户信息
注册用户可查看其它用户信息
4
与其它用户联系
注册用户可发站内短信
(续表2-2)
序号
功能名称
说明
5
浏览版面
任何用户可浏览版面信息
6
浏览公共信息
任何用户可浏览公共信息
7
浏览帖子
任何用户可浏览帖子
8
发布修改删除帖子
注册用户登录后可发布帖子,修改自己的帖子,删除自己的帖子
接下来的版面,公共信息,帖子都没有和其他对象的关联,它们在论坛中是被动对象,是被其它对象所操作。
因此针对它们的主要功能是由其它对象产生,例如浏览版面就是用户的功能。
管理员是论坛的一个特殊群体,它们的主要工作是保证论坛的正常运行,他们可以和论坛的所有对象产生联系,因此他们的功能也很丰富。
表2-3管理员功能表
序号
功能名称
说明
1
用户删除
对于在论坛中造成很坏影响的用户,应该删除他们的身份
2
用户授权
授予用户版主权限
3
版面管理
版面是论坛的枝干,对版面进行添加,修改,删除等操作
4
公共信息管理
公共信息展示论坛的状态,不能出现非法言论
5
帖子的管理
帖子是论坛的枝叶,帖子的好坏关系到论坛的健康发展,对帖子进行删除,移动等
现在分析各个对象的相关操作,设计为对象的功能实现接口,即为对象的操作方法。
各个板块有浏览列表和管理两个方法,管理方法又可以分为添加,修改,删除3个子方法。
用户有浏览,发帖,回帖,搜索和编辑5个方法,管理帖子又分为列表和查看两个子方法,管理帖子分为编辑,删除,置顶,移动,指定精华5个子方法。
图2-4用户帖子管理的实体属性图
图2-5管理员管理帖子的实体属性图
用户有注册、登录2个方法,管理用户方法又分为管理用户和设置权限2个子方法。
图2-6用户实体属性图
图2-7管理员实体属性图
这样分析完后,前面列出的功能列表就有了各自的归属对象。
论坛一般存在两种用户:
注册用户和管理员。
用户的权限是向下覆盖的,既上级权限包含下级权限,在论坛中,管理员是上级权限。
论坛的3大基本功能的相互关系如下图所示。
图2-8论坛基本功能图
系统还有一些是论坛的内容更加丰富的扩展功能。
2.4.2论坛扩展功能
下面是个一个论坛扩展功能表。
表2-9扩展功能表
序号
功能名称
说明
1
用户控制自己的信息
用户不想让其他用户看到自己的信息,可以控制自己的信息是否公开
2
用户登录添加验证码
防止暴力破解密码,输入用户名或密码错误会重新生成验证码
3
站内短信
方便用户在站内联系
4
帖子评价
提高用户参与论坛的积极性
5
帖子发布添加多媒体
吸引用户,扩展帖子发布功能
6
论坛收藏
保留用户喜欢的内容,方便用户查看
7
帖子搜索
提供模糊搜索,方便用户找到感兴趣的主题
8
论坛情况显示
把论坛的一些数据显示给用户,如发帖数,在线用户人数等
添加了这几个扩展功能后,论坛就显得平易近人多了,也更具有使用性。
第3章系统设计
3.1功能模块
模块的划分主要是按照每一个对象的操作来归类。
论坛操作的对象是上一节所归纳的5个。
下面就针对这5个对象划分功能模块。
用户:
有两个模块,一个是用户注册,登录,修改信息等功能组合,是用户对用户自身的操作;另一个是管理员对用户进行删除,授权,是管理员对用户的操作,如表3-1。
表3-1用户功能模块表
模块
模块功能
用户模块
用户注册
用户登录
浏览其它用户信息
与其它用户联系
用户控制自己的信息
用户登录添加验证码
管理员模块
用户删除
用户授权
版面:
也有两个模块,一个是浏览模块,一个是管理模块。
其功能模块列表如表3-2。
表3-2版面功能模块表
模块
模块功能
版面浏览模块
浏览版面
版面管理模块
版面管理
公共信息:
用户浏览公共信息的功能划分一个模块,管理员对公共信息的操作划分为一个模块,其功能模块列表如表3-3。
表3-3公共信息功能模块表
模块
模块功能
公共信息显示模块
浏览发布的公共信息
公共信息管理模块
公共信息管理
帖子:
帖子包括用户对帖子的操作和管理员对帖子的操作,相应地分为帖子模块和帖子管理模块,如表3-4。
表3-4帖子功能模块表
模块
模块功能
帖子模块
浏览帖子
发布/修改/删除帖子
对帖子的特殊操作
帖子评价
帖子发布添加多媒体
论坛收藏
帖子搜索
(续表3-4)
模块
模块功能
帖子管理模块
删除帖子
移动帖子
管理员:
管理员是对其他对象进行操作,如表3-5。
表3-5管理员管理功能模块表
模块
模块功能
管理员管理模块
用户管理
版面管理
帖子管理
另外,对于用户使用的模块称为前台模块,管理员使用的模块称为后台模块。
系统总体功能划分如图3-6。
图3-6系统功能模块图
3.2数据库设计
论坛使用Access数据库,下面列出是数据库设计的详细。
3.2.1建立数据表间的关系
论坛数据库主要有以下几个表。
表3-7论坛数据表
序号
字段名
字段类型
1
userdata
用户信息表
2
BBsBoard
版面信息表
3
BbsTopic
主题信息表
4
BbsReply
帖子信息表
5
bbsmessage
论坛信息表
6
usergrade
用户等级表
7
notefriend
好友信息表
8
bbsadmin
管理员信息表
3.2.2数据表结构的详细设计
表3-8用户信息表(userdata)
序号
字段名
字段类型
说明
1
userid
Int(4)
用户编号
2
username
Varchar(50)
用户名
3
Userpassword
Varchar(50)
密码
4
useremail
Nvarchar(255)
电子邮件
5
Usertitle
Nvarchar(255)
用户签名
6
usersex
Varchar(50)
用户性别
7
userface
Nvarchar(255)
头像
8
gradename
Varchar(50)
积分
9
addtime
Datetime
注册日期
10
birthday
Nvarchar(50)
用户生日
11
question
Nvarchar(50)
密码问题
12
answer
Nvarchar(50)
密码答案
13
userlastip
Nvarchar(40)
最后登录IP
14
ishidden
Int(4)
是否隐身登录
15
0icq
Nvarchar(255)
用户QQ
(续表3-8)
字段
类型
长度
备注
16
userinfo
Nvarchar(255)
用户真实信息
17
openinfo
Varchar(50)
是否公开基本资料
在用户信息表里保存的是在论坛注册用户的信息,用户编号和用户名在论坛中是不能重复的,用户名不能重复还使用用户编号的原因是计算机对数字检索速度更快。
表3-9版面信息表(BBsBoard)
序号
字段名
字段类型
说明
1
boardid
Int(4)
版面编号
2
bootid
Int(4)
引导标识
3
boardname
Varchar(50)
主版面名
4
Child
Int(4)
子版数量
5
lasttopictime
Varchar(255)
最后一个主题时间
6
addtime
Datetime(8)
建立日期
7
boardstatus
Int(4)
版面状态
8
topictable
Int(4)
主题表
表3-10主题信息表(BbsTopic)
序号
字段
类型
说明
1
Id
Int(4)
主题编号
2
Title
Text
主题
3
BordId
Int(4)
版面编号
4
Reply
Int(4)
主题回复数
5
lastReplyUser
Varchar(50)
最后回复用户
6
lastReplyTime
Datetime
最后回复时间
7
ReplyId
Datetime
回复Id
8
Islocked
Int(4)
是否锁定
(续表3-10)
字段
类型
长度
备注
9
IsTop
Int(4)
是否置顶
10
IsDelete
Int(4)
是否删除
表3-11帖子信息表(BbsReply)
字段
类型
长度
备注
1
Id
Int(4)
帖子编号
2
ParentId
Int(4)
回复帖子编号
3
BoardId
Int(4)
版面编号
4
UserName
Varchar(50)
用户名
5
UserLoginIp
Varchar(100)
用户登录IP
6
TopicId
Int(4)
主题编号
7
Title
Varchar(255)
主题
8
AddTime
Datetime(8)
帖子发表日期
9
Content
Text(16)
帖子内容
10
Reply
Int(4)
回复
11
LastReplyTime
Datetime(8)
最后回帖时间
12
VoteTitle
Int(4)
帖子投票
13
StatVote
Varchar(255)
投票统计
表3-10和3-11是紧密关联的,论坛主题信息表记载了论坛中主题帖的信息,建立这个表的原因是用户在浏览论坛中的帖子时先应看到的是主题列表,如果主题能够吸引用户,用户才会去看其中的内容,否则用户一进来就看到帖子内容,会使用户感觉非常的杂乱。
这两个表是通过id字段联系起来的,parentid字段是用来针对特定的帖子回复。
接下来几张表是论坛的其它功能需要的数据表。
表3-12论坛信息表(bbsmessage)
字段
类型
长度
备注
1
MessageId
Int(4)
信息编号
2
BoardId
Varchar(100)
板块编号
3
MsgTitle
Varchar(50)
信息标题
4
MsgContent
Text(16)
信息内容
5
UserName
Varchar(50)
发信息用户名
6
AddTime
Datetime(8)
发消息时间
表3-13用户等级信息表(usergrade)
字段
类型
长度
备注
1
GradeId
Int(4)
帖子编号
2
GradeName
Varchar(50)
用户等级
3
MinarTicle
Int(4)
帖子编号
4
GradePic
Varchar(50)
等级标识
5
ClassId
Int(4)
每个等级的数量
表3-14好友信息表(notefriend)
序号
字段名
字段类型
说明
1
NoteId
Int(4)
用户编号
2
UserName
Varchar(50)
用户名
3
Frined
Varchar(50)
好友名
4
AddTime
Datetime(8)
添加时间
表3-15管理员信息表(bbsadmin)
序号
字段名
字段类型
说明
1
LastLoginIp
varchar(100)
最后登录IP
2
LastLoginTime
datetime(8)
最后登录时间
3
UserName
Varchar(50)
用户名
4
PassWord
Varchar(50)
密码
5
Purview
Varchar(225)
权限标识
第4章系统详细设计
4.1用户模块
4.1.1用户登录
论坛在前台实现了用户登陆系统,使用验证码,用户每次登录时都不一样,这样做的目的是为了防止有人利用破解程序,暴力破解用户的密码。
当把用户名和密码输入进去,系统会自动和数据库的用户和密码进行核对,如果一样就登陆进去,如果和原始资料对不上就提示你进入注册页面进行注册,注册成功的话会自动把你的用户名和密码输入到后台数据库里面,下次不用注册直接登陆就可以了。
论坛的登陆系统如图4-1所示:
图4-1用户登录界面
用户输入用户名和密码之后通过()登录按钮进行登录。
当成为用户进入论坛时,会显示用户的个人资料及功能:
修改资料,发起主题,参与主题,上传头像,上传文件,发送论坛短信,论坛权限,论坛收藏,论坛好友。
论坛的个人信息如图4-2所示:
图4-2个人信息界面
在基本资料里面可以看到的个人资料并且可以修改,这样可以使用户对自己的资料随时随地的修改,避免了写完后不能修改的遗憾。
联系资料则是提供了电子信箱,OICQ号码,ICQ号码,MSN帐户,个人主页等的联系方式,如果要修改,必须要先正确输入密码才可以,这样避免了有些人恶意改动别人的联系方式。
修改密码则是发现自己的密码被别人知道后,处于安全的考虑提供了让用户自己改动密码的功能。
4.1.2用户注册
用户注册,首先要检查的就是用户填写的信息,其中包括:
1.字段是否空白,若空白则不接受。
2.输入的E-mail是否正确,若E-mail中没有@,@符号位于E-mail的第一个字符或者@位于E-mail的最后一个字符都算错误。
3.两次输入的密码是否一致。
4.用户名是否被使用。
5.电子邮件是否被使用。
图4-3用户注册页面
程序说明:
通过IsValidEmail(trim(request("UserEmail")))=false验证电子邮件地址正确性;通过(selectUserEmailfrom[UserData])lai来验证邮箱的唯一性,如果出错则显示“对不起,本论坛已经限制了一个Email只能注册一个帐号,请重新选择您的Email。
“如果正确则输"恭喜,您所填写的用户和Email通过检测,可以正常注册!
请继续将您的注册信息填写完整,谢谢。
”
4.1.3与其他用户联系
站内用户通过短消息与其他用户联系。
图4-4用户好友列表页面
可以将站内的注册用户加为好友,方便查看好友的信