毕业设计学生论坛的设计与实现论文_第1页
毕业设计学生论坛的设计与实现论文_第2页
毕业设计学生论坛的设计与实现论文_第3页
毕业设计学生论坛的设计与实现论文_第4页
毕业设计学生论坛的设计与实现论文_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、毕业设计(论文)毕业设计(论文)学生论坛的设计与实现学生论坛的设计与实现学生论坛的设计与实现学生论坛的设计与实现摘要摘要论坛也称为 bbs,bbs 是 bulletin board system 的缩写,意思是电子公告版,一种在 internet 上常见的用于信息服务的 web 系统,它的主要服务是用来帮助浏览者相互沟通、吸引用户、服务用户的。他起源于 20 世纪 80 年代初,最初只是用于发布公告信息和讨论问题的在线交流平台,后来随技术的发展与网络的普及功能越来越强大。由于得到了广大网友的欢迎,越来越多的商业网站开始重视论坛,把论坛作为与用户交流的平台和在线技术支持与服务的平台。论坛的功能是

2、多种多样的,现在流行的各种论坛插件让这些功能更加的多元化,但论坛的基本功能依然是信息的发布与讨论,在实现基本功能的同时也要丰富论坛的其他功能,如建立网友的荣誉系统,美化论坛的界面。按照论坛的基本功能,论坛的开发可以归结为 web 开发技术和数据库应用技术。目前主要的开发技术有 asp、asp.net、php、jsp 等,本文主要采取 asp 为开发技术,并使用了一些 vbscript 语言来实现论坛基本功能。目前常用的数据库有mysql、oracal 等,在数据库的选取上,为了简化架设的实现,采取microsoft 公司的 access 作为数据库平台,这样在单机上架设一个简单的论坛几乎不需要

3、安装任何程序。本文设计的流程是从系统的需求分析开始,确定系统的流程与设计,到模块的划分,再到数据加结构的设计,最后开始每个模块的编程与开发。关键字:关键字:论坛;internet;javascript;asp;数据库design and implement of students forumabstractforum, also called bbs, is short for bulletin board system. bbs is a web system that often seen on internet for information service. its main purp

4、ose is to help the viewer to communicate with each other, attract user and serve them. bbs was originating in the 1980s. at first its only an online flat roof that is used for delivers announcements and discusses problems. with technical developments and the popularity of internet, its function beco

5、mes more and more powerful. welcomed by large amount of net friends, more and more business websites pay regard to the bbs and make bbs an online communicate flat roof for delivers announcements and discusses problems. forum combines many functions in one. many kinds of plug-ins in the fashion help

6、these functions to be more disparate, however, the mainfunction of bbs is to deliver announcements and discuss problems. based on that, otherfunctions of bbs could be extended, for example, honor system of the net friends and sugar up the interface of the forum. due to the main function of the bbs,

7、developments of forum come down to developments in technology and application technology in database. now we have asp, asp.net, php, jsp and so on. this paper use asp and some vbscript computer language to carry out the mainly function of the bbs. databases like mysql and oracal is popular now days.

8、 we choose access produced by microsoft company. it is easy to span a simple forum, hardly any programs to install. the design flow of this paper starts with analyzing the needs of the system, by confirming the processes and designs of the system, dividing modules, then designs of date and structure

9、s, finally developments and programming of every module.key words:forum;internet;javascript;asp;database目目 录录摘要.2第 1 章 系统功能设计.51.1 引言.51.2 需求分析.61.3 功能设计.71.4 扩展功能设计.10第 2 章系统架构与数据库设计.112.1 功能模块的划分.112.2 数据库设计.14第 3 章 基本设计.163.1 论坛首页设计.163.2 数据库连接函数.16第 4 章模块的实现.184.1 用户模块.184.1.1 用户的登陆.184.1.2 用户的注

10、册.184.2 帖子模块.234.2.1 发布、修改、删除帖子.234.2.2 帖子浏览模块.244.2.3 帖子搜索模块.254.3 管理人员模块.254.3.1 系统参数设置.254.3.2 用户授权.264.3.3 数据库的备份与还原.27第 5 章 论坛的架构.285.1 安装环境和参数设置.285.2 运行论坛.30第 6 章 结论.32参考文献.33致 谢.34附录 a asp 的介绍.35附录 b ado 对象.42第第 1 1 章章 系统功能设计系统功能设计1.11.1 引言引言随着网络的越来越普及,人们越来越关于这样一种交流平台论坛。很多商业网站都开设自己论坛来提供交流和服务

11、,也有很多的个人网站和个人论坛的出现,论坛已经不光是一种交流平台,甚至是成为了实现自我价值的一个舞台。正因为论坛越来越重要,所以论坛的维护也变成了一种职业,而更好的维护则需要从设计这个层面来了解和进行。在论坛里大家最熟悉的就是用户浏览论坛中已有的内容,针对别人的主题展开讨论,也可以发表自己的观点供大家品评。同时为了防止用户发布一些不健康不合法的内容,需要有管理人员来对这些内容进行删除、修改。而且用户想在论坛发布信息则要求他注册,这样来控制用户发布信息和方便管理者操作用户的信息。论坛也要有多个版面和分区,用来区分各种帖子的内容范畴,方便整理和管理。所以论坛的基本功能就是要实现用户的数据库管理和帖

12、子的数据库管理,以及怎么样让这些数据库和网页的操作联系起来。1.21.2 需求分析需求分析要设计一个一个论坛,首先要分析论坛里需要那些内容,以及各种内容之间的关系。首先列出论坛常用的名词:用户、版面、公共信息、帖子、主题、积分、称号、版主、注册信息、管理员、系统参数。对于以上名词可以精简。主题是帖子的一个特例、积分和称号是用户的一个属性、版主是增加了权限的用户,注册信息是用户的具体属性。所以具体的对象有:用户、版面、公共信息、帖子、管理员、系统参数。具体的操作包括:管理员对用户、帖子、版块的管理;客人和用户的对版块、帖子的浏览;客人的注册;用户的发帖、回帖、搜索等操作。把具体的对象和具体的操作

13、相联系,我们可以归结出论坛基本操作的流程图,如图 1-1。浏览帖子回帖浏览版块搜索客人注册登陆用户发帖管理用户管理帖子管理版块管 理 员图 1-1 论坛基本功能流程图图 1-1 中个将具体的对象和操作直观的表达了出来,为了更具体的细化对象和操作的关联,用来划分开发的模块,我们将对象与对象之间的关联可以建立出一张表,对象如表 1-1。表 1-1 各对象间的关联表用用户户版版面面公共信息公共信息帖帖子子管理人员管理人员系统参数系统参数用户注册修改浏览联系浏览浏览发布浏览发布修改删除特殊操作版面公共信息帖子管理人员删除授权添加删除修改添加删除修改添加删除修改设置系统参数表 1-1 中的对象是单向关联

14、,是指左侧对象对上方对象的活动。表示没有关联,表示存在单向关联。通过以上设计,论坛需要些什么以及所需要的对象之间存在着怎么的关系就有了基本的概念。1.31.3 功能设计功能设计表 1-1 中用户关联的对象是自身、版面、公共信息、帖子。分别根据用户与这些对象的联系给出一个明确的菜单,如表 1-2。表 1-2 用户功能列表功能名称功能名称说明说明用户注册用户在论坛填写必要信息后就可以注册为注册用户,并能在登陆后对注册信息进行更改用户登陆注册后的用户可利用用户名和密码在论坛登陆浏览其他用户信息用户注册后可以查看其他用户的公开信息与其他用户联系可以在论坛内给其他用户私下留言,或直接发送邮件等浏览版面用

15、户可以看到以列表形式展现的版面信息和版面说明浏览发布公共信息未登陆的用户可以浏览公共信息,登陆后可以发布允许范围内的公共信息浏览帖子用户可以以列表形式浏览帖子主题及其全部内容发布修改删除帖子用户在登陆后可以发布帖子、修改自己的帖子,被给予版主权限后还可以编辑、修改、删除权限范围内的其他用户帖子对帖子特殊操作主要针对版主权限用户,对帖子进行置顶、加精华等特殊操作,是帖子主题不同于其他主题版面、公共信息、帖子都没有和其他对象的关联,都属于被动的对象,是被其他对象所操作的,因此针对它们的功能主要是有其他对象产生。版面和帖子是有一定关系的,可以看作是对帖子内容的归类,类似文件夹与文件的关系,有时候可以

16、认为版面是帖子的一个属性。对于管理员的功能,应该认为管理员是论坛的特殊群体,工作是设置论坛参数规则和维护论坛的正常运转。管理员可以和所有对象产生关联,所以其功能设定也很丰富,如表 1-3。表 1-3 管理员功能列表功能名称功能名称说明说明用户删除对于一些蓄意破坏的用户,删除其身份,不允许其存在用户权限对于一个具有管理能力的用户给予一些特殊的权限,让他们在权限范围内帮助管理和维护论坛版面管理版面是论坛的枝干,要设定论坛需要的合适版面,让论坛的功能更明细,分类更规范,方便大家的浏览公共信息管理公共信息是向用户展现论坛状态的部分,由于信息的普遍性,其删除和修改权限需要由管理人员来完成帖子管理帖子是论

17、坛的叶子,是基本数据库,反映了论坛使用者和管理者的水平,所以需要管理人员的全权管理来规范其内容设置系统参数系统参数包含的内容很多,直接关系到论坛的正常运行,包括网址在内的各种参数全部要由管理人员统一设置和变更对于管理员和用户功能关系可以细化成以下几个相关用例图。论坛设置参数,可以把设置一组参数作为一个方法,也可以把设置一个参数作为一个方法,如图 1-2。管理员设置论坛参数论坛分页参数基本参数用户相关参数图 1-2 论坛对象的相关用例图各个版块有浏览列表和管理两个操作,管理方法又包括了创建、修改和删除这 3 个子方法,如图 1-3。管理员管理版块创建版块修改版块删除版块用户浏览列表图 1-3 版

18、块对象的相关用例图帖子有浏览、发帖、回帖、搜索和管理 5 种方法,浏览方法又可以分列表和查看 2 个子方法,管理方法又可分编辑、删除、置顶、转移、加精华 5 个子方法,如图 1-4。管理员用户管理帖子删除转移置顶加精华编辑发帖回帖搜索浏览图 1-4 帖子对象的相关用例图用户类有注册、登陆和管理 3 个方法,管理方法又分为添加、删除、设置权限 3 个子方法,如图 1-5。管理员用户管理用户删除添加设置权限发帖回帖浏览图 1-5 用户对象的相关用例图这样,表 1-2 和 1-3 就分别有了各自的归属对象。论坛一般存在两种用户:注册用户和管理员。用户的权限是向下覆盖的,即上级权限包含下级权限。这样论

19、坛的基本功能就可以从各种需求中筛选出来了,即发帖、浏览帖子、回帖。基本功能就是构成论坛系统的必要功能,具备这些功能的 web 系统即是论坛。1.41.4 扩展功能设计扩展功能设计具备了发帖、浏览帖子、回帖的 web 系统就构成论坛了,但是这样的论坛很简单,没有吸引力,用户使用起来也不会很舒服,无论是作为商业还是个人论坛都是没有竞争力的。所以需要为其添加一些更人性化的功能使内容更丰富。用表格形式列出可能的扩展功能,如表 1-4。表 1-4 扩展功能列表功能名称功能名称说明说明用户控制自己的信息用户可控制自己的信息是否公开用户登陆添加验证码登陆时需输入验证码,如登陆信息错误则重新生成验证码。这样可

20、以防止一些软件偷取用户名和密码站内短信让两个用户能在论坛内更方便的交流帖子评价给予用户对一个帖子评价好坏的功能帖子发布添加多媒体如可在帖子内使用表情图片、插入 flash、音乐等功能帖子类别多样化让用户可以发起投票、买卖等功能的帖子帖子收藏在论坛中加入搜索但效率却不一定很高,对于好的帖子为了方便用户以后更方便找到这个帖子,可以让用户收藏帖子用户等级建立一个荣誉体系,对于对论坛贡献大的用户给予一定的荣誉称号或者高的论坛等级论坛情况显示让用户直接看到一些论坛统计数据,如主题总数、在线人员等数据备份论坛最重要的就是数据库,但数据库系统的安全并不是 100%的,所以为了论坛能持续发展,需要定期对论坛数

21、据库进行备份非法言论过滤对于一些非法言论或不良词汇可以在论坛进行过滤设置,一旦有人使用也会被过滤掉而不至于造成不良影响非法 ip 限制对于一个蓄意捣蛋的用户,限制他的 ip 不能访问论坛,但这个有很大的局限性,一般情况下用处不会很大添加了以上功能,论坛就显得更具有亲和力了,而且也更具有实用性。第第 2 2 章章系统架构与数据库设计系统架构与数据库设计2.12.1 功能模块的划分功能模块的划分模块的划分主要是按每一个对象的操作来归类。论坛操作的对象在第一章里归纳为用户、版面、公共信息、帖子、管理员、系统参数这 6 个对象,所以就要针对这 6 个对象划分功能模块。(1) 用户:有两个模块,一个是用

22、户注册、登陆、修改信息等功能组合,是用户对自身的操作;另一个是管理人员对用户进行删除、授权的操作;如表 2-1。表 2-1 用户功能模块列表模块模块模块包含的功能模块包含的功能用户注册用户登陆浏览其他用户信息与其他用户联系用户控制自己的信息用户登陆添加验证码用户模块用户等级用户删除管理人员模块用户授权(2) 版面:有两个模块,一个是浏览模块,一个是管理模块。如表 2-2。表 2-2 版块功能模块列表模块模块模块包含的功能模块包含的功能版面浏览模块浏览版面版面管理模块版面管理(3) 公共信息:将用户发布和浏览公共信息的功能划分为一个模块,对象是用户对公共信息的操作;管理员对公共信息的操作划分为另

23、一个模块。如表 2-3。表 2-3 公共信息功能模块列表模块模块模块包含的功能模块包含的功能公共信息显示模块浏览、发布公共信息公共信息管理模块公共信息管理(4) 帖子:帖子是论坛的基本,其功能是最多最复杂的,但仍然可以分为两个模块,根据操作对象来区分。如表 2-4。表 2-4 帖子功能模块列表模块模块模块包含的功能模块包含的功能浏览帖子发布、修改、删除帖子对帖子特殊操作帖子评价帖子发布增加多媒体帖子类别多样化帖子移动(单个)帖子收藏帖子模块帖子搜索帖子管理帖子管理模块帖子移动(批量)(5) 管理员:管理员主要是对其他对象进行操作,是对其他模块的操作人员,同时系统参数设置模块的功能也可以划分进来

24、。如表 2-5。表 2-5 管理员管理功能模块列表模块模块模块包含的功能模块包含的功能设置系统参数数据备份非法言论过滤管理员管理模块非法 ip 限制通过以上分析,论坛的模块划分也就完成了。但如果要把整个论坛系统完整的架构出来,还要分析模块与模块之间的关系,把零散的功能模块用一条主线串联起来。对于论坛系统来说,联系各个模块的主线是使用者的权限,用户能使用论坛的哪些功能是由用户的权限决定的,论坛的每个功能都与相应的权限对应。同一类用户使用的功能模块。是以使用者为中心连接起来的。另外,操作同一类事物的功能模块,也是相互关系的。浏览模块与发帖回帖模块、管理帖子模块关联,是由论坛的系统流程决定的;管理版

25、块模块与浏览模块关联,是有帖子与版块的父子关系决定的,帖子依附与版块,先有版块后有帖子,帖子必须发表在某个版块中;管理用户模块与注册登陆模块关联,是由同一类对象用户决定的,注册后获得论坛的身份,成为用户,所有的用户需要接受管理员的管理,用户登陆证明自己在论坛中的身份。分析了这些关系,我们可以得到论坛系统的整体架构,如图 2-1。管理员管理用户管理版块管理帖子用户选择版块浏览帖子注册登陆发帖回帖搜索图 2-1 论坛整体架构图对于用户使用的模块成为前台模块,管理员使用的模块称为后台模块。其划分如图 2-2。图 2-2功能模块划分2.22.2 数据库设计数据库设计论坛系统信息的储存一般是在文件或者数

26、据库中,相比之下数据库要简单高效,能对论坛进行更好的控制,也能对资料提供一些严正和保护。所以目前流行的论坛都是使用的数据库系统。使用数据库的首先就是要设计数据库的表结构,一个设计良好的数据库结构可以提高效率、方便维护,而且对于可能的扩充也会留有余地。论坛系统论坛系统论坛系统用户模块版面浏览模块公共信息显示模块帖子模块用户管理模块版面管理模块公共信息管理模块帖子管理模块管理人员管理模块第第 3 3 章章 基本设计基本设计3.13.1 论坛首页设计论坛首页设计当用户打开论坛时,首先看到的是论坛首页,用户从首页可以看到和论坛相关的内容,发帖数、用户数量和主要版面的情况等。首先这个页面应该尽量的美观,

27、操作截面也要看起来简单易用而且具有实用性。一般论坛的首页分 4 个部分,上面是论坛的顶部 logo,一般这个要体现出论坛的一个主题;接着是论坛的导航部分,包括了用户状况和论坛了基本状况,且这两个状况应该左右分开;再下面就是论坛主题部分的各个版面信息;最下面就是论坛用户在线状况论坛当前的情况。基本上可能变动大的只有版面部分,所以其他变动小的部分可以做成公用文件,让其他页面可以重用。这 3 部分不写在文件里,而是直接写进数据库中。如程序 3-1。首页里用到了很多“”包括的字符,里面的内容是变量,因为论坛信息会随一些操作而改变而不同的显示状态,这些信息将随这些状态的改变而改变成及时的真实的状态。这些

28、是要与数据库连接的,所以下面将说明数据库的连接函数。3.23.2 数据库连接函数数据库连接函数数据库连接在论坛运行中是必不可少的,把这部分单独做成一个函数,在需要的时候只需要调用这个函数就可以了,而不用每次去写连接程序,这种复用可以让操作更加方便快捷。选择的 access 作为数据库,功能不强大,不能让很多人连接,但是可以省掉很多设置,对机器要求也相对要低得多,适合用 pc 机架设论坛。asp 中与数据相关紧密的是 ado,要让 ado 对象能存取数据库,最重要的东西是 ole db 和odbc 的驱动程序,必须具备对应数据库的其中一种驱动程序,ado 对象才能进行存取。因为根据 micros

29、oft 公司的说法,ole db 驱动程序的执行效能比 odbc要好,所以选择用 ole db 驱动程序。利用 ado 的 connection 来建立同数据库的连接。建立 adodb.connection对象,使用此对象的 open 方法打开数据库。用 access 在论坛路径下建立一个数据库存储路径“data” ,然后建立一个名为 mybbs7.mdb 的数据库,建立之前数据库设计中的表。利用 microsoft 公司的 ole db 机制连接 access,用 ole db 不用建立 odbc 就可以直接连接 access 数据库。sub 声明了函数 connectiondatabase

30、,end sub 结束这个函数。dim 声明了变量 connstr,这个变量是用来存储连接数据库信息的。变量 db 声明了数据库文件所在的路径。为 connstr 赋值是声明 ole db 连接数据库的方式,data source 后面跟的是数据库文件所在的路径。server.mappath 是 asp 内置server 对象一个函数,用来取得网站目录下文件的绝对路径。712 行是一个判断错误的信息,如果连接出错,asp 的 err 对象判断系统给出错误的存在,然后清除。第第 4 4 章章模块的实现模块的实现4.14.1 用户模块用户模块.1 用户的登陆用户的登陆首先看用户的登

31、陆。在用户信息表里用户名和用户密码字段是用来验证用户身份的,用这两个字段来写验证用户登陆的程序。登陆页面命名为 login.asp,这个页面包含了输入用户名和密码、cookie选项、和隐身登陆选项。隐身登陆只是一个判断登陆状态的标识。主要是验证用户身份和把用户信息写入 cookie。首先是一个查询用户身份的 sql 语句,输入某个用户后将从数据表 user_t中查找该用户。set rsuser=mybbs.execute(sql)一句是用来执行这条 sql 语句,同时返回一个包含了查询信息的记录集。if rsuser.eof and rsuser.bof then一句判断用户信息是否存在。如果

32、不为空,就将把数据集的信息写入储存用户信息的字符串中。if trim(password)trim(imyuserinfo(6) then 一句判断用户密码是否和数据库中的用户密码相同。response 是 asp 的一个内置对象,cookies 是这个对象用来向浏览器写cookie 文件的集合。cookies 集合设置 cookie 的值。若指定的 cookie 不存在,则创建它,若存在。则设置新的值并且将旧值删除。response.cookies(mybbs.forum_sn).expires=date+1 是用来保存用户选择的cookie 保存时间的,在选择时间内再次来论坛则可以不用再登陆

33、了。.2 用户的注册用户的注册用户注册也关系到信息的验证,必须确定一些信息符合一定的规则和要求。用户注册后可以修改自己的信息和密码,如果忘记密码还有相关取回密码的操作。首先就是用户的注册,命名为 reg.asp,主要是对用户所填写信息的检测。主要包括字段是否为空,是不是满足长度、字符方面的要求;输入 e-mail 是否正确,主要判别是字符是否存在和存在的位置;两次输入的密码是否一致;用户名是否已经存在,电子邮件是否被使用。注册首先是要向数据库提交你所填写的信息,这些所填写的信息大多是表单的形式,可以使用 request.form()来获取表单内的文本框。request 是 as

34、p的内置对象,form 是 request 的一个获得表单的集合。(1) 用户名的验证:在获取的同时就可以对文件长度等进行检测,使用cint()函数进行强制执行整数运算判断是否在可接受的范围之内。 (2) 密码的验证:主要验证的是密码的长度,采用 len()函数,可以返回字符串中字符的个数。参数可以是字符串也可以是变量名。if request.form(psw)= or len(request.form(psw)10 or len(request.form(psw)6 thenerrcodes=errcodes+template.strings(13)(3) 电子邮件的验证:邮件的地址一般是“

35、用户名域名” ,采用 vbscript的函数 split(),可以返回一个一维数组。在参数部分可以设置“”为字符串的标识界限。用这个符号来拆分电子邮件地址,形成数组。ubound()函数返回了数组维数的最大可用下标。dim names,name,i,cis validemail=truenames=split(email,”)if ubound(names)1 thenis vailemail=falseexit functionend if而用户的注册信息如果是合法的则在提交注册信息后要将这个注册信息插入到数据库中去,可以使用 recordset 对象。set rs=server.creat

36、eobject(“adodb.recordset”)sql=”select * from user_trs.open sql,conn,2,3rs.addnewrs(“username”)=usernamers(“userpassword”)=passwordrs(“useremail”)=useremailrs(“userclass”)=userclassrs(“titlepic”)=titlepicrs.updaters.closeset rs=nothing但光有 recordset 对象没有 connection 对象也没有用,connection 对象已经写入了连接数据库的函数 co

37、nn.asp。connstr = provider = microsoft.jet.oledb.4.0;data source = & server.mappath(db)set conn = server.createobject(adodb.connection)conn.open connstrset rs=server.createobject(adodb.recordset)sql=select * from user_t where username=”&username&”rs.open sql,conn,1,3在上面程序里,conn 对象的功能是连接数据

38、库,rs 的功能是打开数据表user_t。而 connection 对象的功能是连接数据库,连接程序如下:sub connectiondatabasedim connstrdb = data/mybbs7.mdbconnstr = provider = microsoft.jet.oledb.4.0;data source = & server.mappath(db)set conn = server.createobject(adodb.connection)conn.open connstrconnstr = provider = microsoft.jet.oledb.4.0;d

39、ata source = & server.mappath(db)一句分别设置了 provide 参数和 data source 参数。用户注册后要修改自己的信息。修改信息就是将原来用户的信息显示出来,待用户修改提交表单后更新数据库中的信息,这里同样要对用户新输入的信息进行检测,这个和用户注册部分的检测是一样的,只是没有了对用户名的检测。所以用户信息的修改的程序与用户注册是很相似的,只少了 rs.addnew 一句,另外在选取信息的时候的语句有所不同。sql=”select * from user_t” where userid=”& userid通过这一句可以准确的定位到用户

40、的编号 userid 的这条记录,这是利用了recordset 对象的查询功能,然后使用 recordset 对象的写入功能,用rs.update 结束。虽然用户的用户名不可以更改,但是用户的密码是可以更改的,这是用户身份验证的标识,同时也可以更改自己的密码提问和密码答案。这些更改也基本上和用户信息修改的程序相同,利用用户的编号取出用户的信息,验证用户的修改信息后更新数据库。但是如果用户是忘记了密码而要取回,则就要调用到另外的一套程序。获得用户密码程序(lostpass.asp)if request.form(username)= thenshowerr template.strings(6)

41、exit subelseusername=replace(request(username),)end ifif mybbs.forum_setting(2)0 thenset rs=mybbs.execute(select userquesion,useranswer,username,usergroupid from dv_user where username=&username&)elseset rs=mybbs.execute(select userquesion,useranswer,username,usergroupid from dv_user where u

42、sername=&username& and usergroupid3)end ifif rs.eof and rs.bof thenshowerr template.strings(8)exit sub elseif rs(3) 4 thenshowerr template.strings(7)exit sub else if rs(0)= or isnull(rs(0) then showerr template.strings(9)exit sub elsetemplate.html(6)=replace(template.html(6),$quesion,rs(0)te

43、mplate.html(6)=replace(template.html(6),$username,username)if mybbs.forum_setting(81)=0 thentemplate.html(6)=replace(template.html(6),$getcode,)elsetemplate.html(6)=replace(template.html(6),$getcode, 验证码:&mybbs.getcode()end if response.write template.html(6)end ifend ifrs.close set rs=nothing这里是

44、通过两步来完成取回密码的,第一步是验证用户名,第二步才是取回密码。4.24.2 帖子模块帖子模块一个论坛最重要的是数据,数据部分最重要的只有两个,一个是用户数据,另一个就是帖子数据。而帖子是一个论坛存在的根本,所以非常重要。.1 发布、修改、删除帖子发布、修改、删除帖子对于发布、修改和删除帖子,发布是重点,修改帖子和发布帖子是差不多的,而删除帖子只需要多数据库的帖子 id 实行删除操作,相对也比较简单。发布帖子的功能很多,使用心情图片和表情图片,正文部分可以自己定义喜欢的格式,还有使用各种 ubb 代码。帖子的正文部分可以通过一些代码插图图片、flash 等各种东西,而且可以自

45、定义字体、格式、颜色等,让帖子看起来更丰富多彩。其实这里并没有提供html 功能,而是用到了 ubb 码。ubb 代码是 html 的一个变种,是 ultimate bulletin board(国外的一个 bbs 程序)采用的一种特殊的 tag。为了避免用户无意或有意的使用 html 代码对论坛进行攻击,一般论坛是禁止 html 代码的,但会开放一些自定义的 tag 标签,类似与 html 中的 tag,这样就既可以使用一些等同于 html 代码的功能,又避免了论坛受到恶意的攻击。一般我们自定义的这些 tag 叫做 ubb 代码。(1) url 超级连接:直接输入 http:/ 系统将直接创

46、建超级链接。urlhttp:/ 论坛/url(2) e-mail 超级连接:在你的信息里加入电子邮件的超级链接,可以按下面的方式套用 ubb 代码。 粗体与斜体:可以使用b/b来表示粗体,i/i来表示斜体(4) 列表:在信息里加入列表,按照下例套用 ubb 代码list* firstline* secondline/list如果要加入序列可以使用list=a或list=1就可以按照字母和数字来排序了。(5) 加入图片:img图片地址/img可以在文章中插入图片。(6) 引用信息:quote引用内容/quote可以插入引用的信息。(7) 保持格式:如果需要帖入一些按一定格式排列的字符图可以使用c

47、ode内容/code,这样里面的内容会按照你帖入的格式严格排列。(8) 彩色文字:color=red文字/color可以让文字变成彩色。这里 red是论坛已经定义好的彩色列表,red=#ff0000,用户也可以自己定义其他非论坛定义的色彩。以上是关于基本 ubb 代码的使用,而在实际操作时对于 ubb 代码也可以进行过滤,引用别人的发言时也可以使用直接引用选项,自动完成 ubb 操作。.2 帖子浏览模块帖子浏览模块为了提高页面的读取速度,帖子一般不会在一页里罗列出来,而是采用分页显示,让每页显示一定的帖子数。论坛的分页显示主要有两种方法,一种是将数据库中所有符合查询条件的记录一

48、次性读入 recordset 中,并存放在内存中,然后通过 ado recordset 对象所提供的几个专门支持分页处理的属性来管理分页处理;另一种方法是根据客户的指示,每次分别从符合查询条件的记录中将规定数目的记录读出显示。两种方法的区别在于前者要把所有记录都读入内存,如果记录很多的话,效率会比较低;而后者是先根据指示做判断再读入符合条件的一定数目的记录进内存,但如果访问人数多时,会造成很大负担。因为在一般情况下效率相差不大,而第一种方法更容易实现,所以一般采取第一种方法。在第一种方法中,进行 ado 存取数据库时的分页显示,其实就是对recordset 的记录进行操作。recordset

49、对象表示基本表或命令执行结果的记录全集。任何时候 recordset 都只将集合中的单个记录作为当前的记录引用。使用 ado 时,将几乎全部使用 recordset 对象来对数据进行操作。.3 帖子搜索模块帖子搜索模块如果论坛的的帖子数据量比较大的时候,用帖子列表的方式来人为的寻找某帖子显然是很浪费时间的,这时要用到帖子搜索的功能。搜索最重要的是效率,这时就需要设计搜索需要的条件,使搜索达到最大效率。如图 4-1。4-1 帖子的搜索在图 4-1 里能看出,帖子的搜索,首先是有两种搜索方式,搜索作者或搜索主题的关键字。过滤的条件是三个,论坛版块、帖子日期和帖子所在数据表(如果帖子

50、数量大的话,是可以分不同数据表储存的)。有了这些条件可以增加搜索的效率。搜索肯定要用到 sql 的 select 语句,那么关键就是 asp 是如何操作 sql 语句的。见程序 4-10。在帖子搜索完成后,将搜索所取得的主题要形成一个帖子浏览列表,这部分和帖子的显示与浏览模块是基本上相同的,只是取出了需要帖子的 id 重新生成一个 id 序列。4.34.3 管理人员模块管理人员模块管理人员模块实际上其实是多个模块的组合,模块的功能都实现了的话,这里只是对这些功能进行限制。.1 系统参数设置系统参数设置系统参数设置是后台设置,界面见图 4-2。4-2 系统设置页面在系统参数设置里

51、对许多东西都进行了设置,这些东西都是网站必须的和公用的东西。如果不在这里储存,就要在每个页面都写出这些信息,如果一旦其中的某个需要修改,就要把所有的页面都修改一遍,这样工作量就会很大。现在把它们提取出来写,当需要时很容易地就能从数据库中取出来显示在页面上,如果出现变化,就很方便地可以修改了。系统参数程序基本上和用户注册修改信息部分是差不多的,从数据表从读出数据显示在表单,在修改后又把更新后的表单数据提交给数据库更新。.2 用户授权用户授权用户授权也是在后台进行的,授权的方式是设置好论坛等级,对于不同的论坛等级设置不同的权限字段,然后授权只需要授予用户相应的论坛等级,如版主、超级

52、版主等就可以达到授权的目的。基本上只牵涉到用户表某些字段的操作与系统参数设置。用户授权的主要目的就是让用户参与到论坛中来,同时也减少管理员的负担,让论坛显得更加规范。.3 数据库的备份与还原数据库的备份与还原数据库对于一个论坛来说是至关重要的,当论坛运行一段时间后,某些关键数据如果不小心删除了,或者数据库出现了异常错误数据被破坏,如果有数据库的备份就能很好的恢复了。所以这是论坛日常管理中最重要也是最不可缺少的一部分,其他的参数设置设置好后一般都不会有太多更改,但是数据库的备份却要定期的执行一次。这里用到了在处理文件上的重要的对象fso,也就是 filesystemobject对

53、象,其作用是提供对计算机文件系统的访问。scripting. filesystemobject以下代码说明了如何使用 filesystemobject 对象返回一个 textstream 对象,此对象可以被读取或写入。set fs=creatobject(“scripting. filesystemobject”)set a=fs.createtextfile(“e:testfile.txt”,true)a.writeline(“this is a test”)a.closecreateobject 函数返回 filesystemobject 对象(fs)。使用createtextfile 方

54、法创建一个文件,作为 textstream 对象(a),然后使用writeline 方法在此文件中写入一行文本。最后使用 close 方法刷新缓冲区并关闭文件。 第第 5 5 章章 论坛的架构论坛的架构5.15.1 安装环境和参数设置安装环境和参数设置需要的安装软件和环境如下:(1)windows 2000 或者 windows xp(2)internet information services 5.0 以上版本将论坛的源代码解压到硬盘某个目录下,打开我的电脑的管理。打开服务和应用程序,选择 internet 信息服务,再选择网站。这时一般会有一个默认网站,可以编辑默认网站的属性,也可以重新

55、创建一个新的网站。 ,如图 5-1。图 5-1 计算机管理界面 打开网站的属性页面,注意以下几个属性:网站、主目录、文档。网站属性见图 5-2。图 5-2 网站属性这里的描述部分是可以自定义的,即创建的网站名。ip 地址是选择外界访问用的地址,如果是服务器的话外界可以直接通过域名访问。不配置 ip 的话,本机可以通过 localhost 访问或者 的 ip 访问。tcp 端口可以自己设定,设定端口后访问地址应该是“ip 地址:端口” ,如果是 80 端口则可省略端口部分。主目录属性见图 5-3。图 5-3 主目录属性内容来源选择此计算机上的目录,本地路径设置成代码存档目录。

56、但比如如果这里设置成“f:” ,而不是“f:bbs”的话,访问的时候在 ip 或域名后面需要加“/bbs”来访问。这里的配置选项里要把里面选项设置中的“起用父路径”点上。文档属性见图 5-4。图 5-4 文档属性这里如果有多个默认文档必须要让 index.asp 处于第一个的位置,其他的放下移或删除处理。5.25.2 运行论坛运行论坛配置完以上参数就可以访问论坛了。打开 ie 浏览器输入之前设置的 ip 地址,或者直接属于 localhost,就可以进入论坛主页面。这里要注意数据库的连接文件是 conn.asp 文件,如果要更改数据库的名称,或者更改数据库路径都要在这个配置文件里更改相应的设置

57、。访问论坛首页如图 5-5。5-5 论坛首页使用管理员登陆后,可以看到管理选项,进入时要再次输入密码。这个密码可以和登陆密码不同。管理员用户名为 admin,密码为 admin,后台密码相同。可以更改论坛相关显示信息。 第第 6 章章 结论结论本文主要说明了 asp 论坛的设计和 access 数据库的设计和实现,运用的asp web 数据库技术具有强大的功能和普遍的适用性。asp 技术发展已经有许多年了,现在也有各种其他的更安全稳定的技术,如 jsp、php 等。asp 作为可以直接应用于页面的技术仍然有他的优势,在各种网络应用领域依然很有实用性,也是 web 设计的基础技术。access

58、作为数据库的功能是相当差的,但是在作为最为流行的 office 系统的组件,拥有使用简单,平台架设方便和普及性强的特点,作为一般学生论坛或者个人论坛其功能也是足够的。本文的主要是说明如何设计数据库已经如何将页面和数据库进行连接,而且这里的数据库也可以更换成 sql 等高级数据库进行应用,只需要修改数据库的连接函数就可以做到数据库的转换。通过研究和设计工作,对于 web 编程有了更深入的了解,对掌握和运用 asp 和数据库的应用方面也有了更进一步的提高,对于今后的对于其他技术的深入和研究也打好了良好基础。参考文献参考文献1欧阳周,刘道德。理工类学生专业论文导写。长沙:中南大学出版社 20002刘

59、小华,任廷奇 毕业论文写作指导 北京 科学出版社 20043黄明,梁旭 asp 信息系统设计与开发实例 北京 机械工业出版社 20044黄斯伟。html4.0 动态网页制作。北京:人民邮电出版社, 19995孙丽君, 吴红普. asp 编程基础及应用实例集锦 m. 北京: 人民邮电出版社. 20016陈会安. asp 网页制作彻底研究m. 北京:人民邮电出版社. 20017 richard anderson chris blexrud. asp 高级编程m. 北京: 机械工业出版社.20018李瑞旭. asp 实例教程m. 北京: 中国电力出版社. 20019冯能山, 李其艺. -轻松学习 a

60、sp 网络实用编程 m. 北京: 清华大学出版社 .200210邓文渊, 陈惠贞, 陈俊荣. asp 与网页数据库设计 m. 北京 中国铁道出版社. 200111张海藩.软件工程导论(修订版). 北京:清华大学出版社 200212张海藩,牟永敏。面向对象程序设计实用教程。 北京 清华大学出版社 2001致致 谢谢光阴似箭,四年的大学生活转眼即将过去。这四年是我人生中最重要的阶段。在这期间,我幸运的遇到了许多好老师,在他们的帮助和指导下,我学到了大量专业知识及学习方法,这些知识和方法为我日后进一步学习打下坚实基础。在此,我要感激所有教过我,给予我帮助的老师们,正是他们无私奉献精神和诲人不倦的育人态度,才使我顺利成长。感谢大学四年中所有的任课老师,感谢他们对我学习上的帮助和影

温馨提示

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

评论

0/150

提交评论