BBS留言板的设计与实现毕业论文.doc_第1页
BBS留言板的设计与实现毕业论文.doc_第2页
BBS留言板的设计与实现毕业论文.doc_第3页
BBS留言板的设计与实现毕业论文.doc_第4页
BBS留言板的设计与实现毕业论文.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

分类号 密级 编号 华中师范大学汉口分校 本科毕业论文题 目 bbs留言板的设计与实现院 (系) 信息科学与技术学院专 业 计算机科学与技术 年 级 2005级 学生姓名 戴 伦 学 号 2005911016 指导教师 宾云峰、杨健 二九 年 五 月华中师范大学汉口分校学位论文原创性声明本人郑重声明:所呈交的学位论文是本人在导师指导下独立进行研究工作所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。学位论文作者签名: 日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保障、使用学位论文的规定,同意学校保留并向有关学位论文管理部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权省级优秀学士学位论文评选机构将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。本学位论文属于1、保密 ,在_年解密后适用本授权书。2、不保密 。(请在以上相应方框内打“”)学位论文作者签名: 日期: 年 月 日导师签名: 日期: 年 月 日35目录摘要1abstract2一、绪论31.1问题的提出及研究意义31.2 bbs留言板的设计与实现分析41.3课题的主要研究内容5二、相关的理论、技术基础62.1 asp技术162.2 ado技术382.3数据库技术10三、系统分析123.1需求分析123.2系统的数据要求133.3系统的逻辑模型16四、系统设计184.1系统概要设计184.2 asp网页数据库的连接214.3 asp网页数据库的操作224.4 asp网页安全性的实现方法244.5系统运行效果25五、总结与展望27参考文献28致谢:29摘要摘要:我们通过bbs,可以展示每一个人的风采、优点,发布个人对一些事物的看法,增强个人与个人之间,团体与团体,个人与团体之间的交流联系,在internet上实现信息的传递,提高办事效率。因此论坛建设在internet应用上的地位显而易见,它已成为现代人勾通和获取信息的重要组成部分,从而倍受人们的重视。该系统以internet为平台,前台可使任何人注册、登陆在论坛上进行发贴及讨论,版主或者前台管理者也可以进行一部分管理。而管理员也可以在后台进行相关的管理。 本系统使用microsoft公司倡导的asp作为开发工具,access为后台数据库,构建一个小型的基于net的网络论坛系统,从功能需求到框架规划再到数据库设计。 关键词:动态网页 asp 数据库 论坛 连接 abstractabstract :we can show everyones elegance, advantage and some views of things by forum. it can strengthen the relationship of individuals and groups and impart the information in the internet, so that it improves the efficiency. so forum build in internet using status on obviously, it becomes modern collude with and obtain the important component of message already, thus takes peoples attention. it regards internet as platform and it has a lot of functions. the user can use it to reach its propose, and the administrator can carry on relevant management in the backstage. this system use the asp that the microsoft company initiated. the access is the backstage database and set up a small scaled according to net network forum system. it needs to do function request rame the programming and design a database. keywords:dynamic state web page asp database bbs conjunction.一、绪论1.1问题的提出及研究意义bbs是bulletin board system的缩写,即电子公告板。它是以文字为主的界面,为广大网友提供了一个彼此交流的空间。bbs与email都是早期internet最普遍的应用之一,至今仍然广泛使用。随着网络信息技术的发展,使得论坛社区这种现代的网络交流方式迅速发展起来,人与人的沟通不再是面对面的单一方式,在网络上的匿名性的保护色下,令原本拙于言辞的人们,透过网络更能畅所欲言。bbs系统可以提供给注册用户一个平台,会员用户可以通过internet接入,登录本系统,在这个平台上发表文章、阅读文章、回复文章等等。bbs为人们交流带来了全新的方式。用户可以通过bbs系统随时取得最新的资讯,也可以通过bbs系统来和别人各种自己感兴趣的问题,更可以利用bbs系统来刊登一些“征友”、“廉价转让”及“公司产品”等启事。bbs已经成为一种呈现在网络上的新兴媒体,它通过internet已经成为一个实时的,多媒体的信息传播渠道。它的载体主要是电脑,范围覆盖全球各地,没有国界,不分人种,时时刻刻地提供服务。与此同时用户也越来越习惯于通过internet网络获取信息,通过internet在网站上发表自己对社会对生活的理解和建议。在web2.0的时代背景下,bbs已经成为一个独立的产品,虽然blog日益风行,但是它和blog不可能相互取代,这也代表着web2.0的两个大的特点:个性化和社会化,增强bbs社区的可用性,才能对用户真正有利。1.2 bbs留言板的设计与实现分析本bbs系统为b/s结构应用系统。b/s结构即browser/server(浏览器/服务器)结构,是随着internet技术的兴起,对c/s结构的一种变化或者改进的结构。c/s结构,即client/server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到client端和server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。早期的软件系统多以此作为首选设计标准。b/s结构下,用户界面完全通过www浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓n-tier结构。b/s结构,主要是利用了不断成熟的www浏览器技术,结合浏览器的多种script语言(vbscript、javascript)和activex技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。随着windows 98/windows 2000将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。采用多层式结构 (n-tier) 应用程序。最常见的是分成三个部分:表示层、事务逻辑层和数据层(3-tier),随着 web 的出现,此结构已经成为主导新程序之开发的结构。综上所述,结合本系统实际需要,本bbs系统采用b/s结构,使用微软公司的技术解决方案。开发环境采用微软的frontpage2007+pws。引入windows dna 概念,将windows dna 应用到系统开发中。采用3-tier软件结构:表示层采用html、javascript或vbscript结合css、activex技术来编写;事务逻辑层,考虑到本系统为通用bbs系统,系统应该具备较大的可伸缩性,应该能适应最基本应用最广泛的web平台,特别是个人用户想在一些免费主页空间搭建自己的论坛,而这类免费主页空间通常只支持asp来处理服务器端数据或数据库,另外,通用系统应该具备较大的可扩展性,目前,asp.net技术发展较快,未来应该能以较小的成本用asp.net重写本系统,因此,本系统事务逻辑层设计采用asp网页;至于数据层,本系统采用最基本的ms access数据库系统,视需要,系统作较小的改动就可以移植到其它大型数据库系统1.3课题的主要研究内容本文讨论的是一个基于web的通用bbs网站,它具有bbs网站应该具有的所有功能。要实现这样的功能,离不开后台数据库的支持。用户验证信息,收集到的用户点击信息,主题层次信息,分析得出的关联规则表等大量的数据都由数据库管理系统管理。本文中数据库服务器端采用了microsoft access数据库作为odbc(open database connectivity )数据源,使web与数据库紧密联系起来。 完成web服务器端的用户管理、帖子管理、版面管理、数据库管理、浏览和查找、短消息功能等设计、实现与完善以及整个实验网站的组织建立和测试工作此系统有以下四种类型的操作用户:匿名用户、普通用户、版面管理员、超级管理员。每类用户有其不同的操作集,系统通常提供一个统一的登录页面,此页面应能自动识别不同级别的用户,并提供不同的操作界面。与之相应,此类系统通常应具有以下功能:用户注册、用户登录、发表文章、阅读文章、回复文章、分页查找、主题查找、作者查找、个人资料维护、找回密码、版面管理、版主管理、用户管理、友情链接管理等等,所有操作都可以由用户在客户端浏览器中完成,而服务器端程序会按用户的要求来完成对系统数据的操作,并将结果传给web服务器,再由web服务器处理成html文件后发送到客户端浏览器。二、相关的理论、技术基础2.1 asp技术1asp技术是一种类似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对象的create object方法允许客户端用户建立一个activex server组件实例,其所建立组件实例会随着服务器端完成asp网页的处理而自动被释放。如果希望此对象实例可以跨多个asp网页,就要用到session对象保留该组件实例,直到session对象的运行时间到了,或是在其他asp网页调用session对象的abandon方法,此组件实例才会被释放。session对象,session对象在asp程序编写中占了相当重的份量,由于网页是一种无状态的程序,因此几乎无法知道用户的浏览状态。必须通过session对象记录用户的相关信息,以供用户再次对此web服务器提出要求时作确认,例如,在某些特定的网页中,常需要用户输入确认的账号和密码,假如这些身份确认的结果无法保留,那岂不是每一个网页都需要重新输入一次密码。换而言之,每一个session的用户,web服务器均会自动的为它们建立一个session。必须说明,session对象只能适用于具备cookie功能的浏览器。2.2 ado技术3ado(activex data objects)是微软公司提供给网页开发者在网页中存取数据库的最新技术,它也是asp内置的重要组件,ado主要的目的是为了存取或修改数据源的数据、或增加数据到指定的数据源,数据源不仅包括数据库,而且包括dbase、excel、foxpro、access或文本文件等一些小型的数据表,所以,只要是odbc驱动程序所能存取的数据源皆是ado存取的对象。ado主要是由connection对象、command对象、parameter对象、recordset对象、field对象、property对象及error对象等七个对象与fields数据集合、properties数据集合、parameters数据集合及errors数据集合等四个数据集合所组合而成,其功能概述如下。ado提供的七个对象:41. connection对象负责与指定的数据源进行连接,除此之外,它还可以通过事物(transaction)来确保在事物中所有的数据源变更的全部成功。2. command对象负责对数据库提供请求,也就是传递指定的sql命令。换而言之,command对象必须经过一个已经建立的连接(connection对象)发出数据操作语言(dml,data manipulation language)来操作数据源的数据,这些命令通常包括insert(增加记录)、delete(删除记录)、update(更新记录)、或是select(以recordset的形式选取数据)等。除此之外,也可以通过command对象对数据库发出数据定义语言(ddl,data definition language),例如create table(建立数据表)、drop table(删除数据表)或alter table(修改数据表结构)等。3. parameter对象负责传递command对象所需要的sql命令参数。4. recordset对象负责浏览和操作从数据库取出的数据,换而言之,recordset对象就像是一个二维的数组,数组的每一行表示一个数据记录,而每个数剧列包含一个或多个数据字段,即field对象。5. field对象表示指定recordset对象的数据字段。6. property对象表示ado的各项对象属性值,换而言之,每个ado对象都会有一组描述和控制对象行的属性。7. error对象负责记录连接过程所发生的错误信息。ado提供的四个数据集合:51. connection对象包含errors数据集合,在errors数据集合中包含数据源响应失败时所建立的error对象。2. command对象包含parameters数据集合,在parameters数据集合中包括command对象所有的parameter对象。3. recordset对象包含fields数据集合,在fields数据集合中包含recordset对象的所有field数据字段对象。4. connection对象、command对象、recordset对象与field对象皆包含一个properties数据集合,在properties数据集合中包含所对应connection对象、command对象、recordset对象与field对象的property对象。ado的七个对象及四个数据集合相互的关系图如下:activex data object关系图如图1所示:图1 activex data object关系图2.3数据库技术1、ms access数据库9数据库(database)是一系列信息资源的集合。在一个数据库中,与一个项目有关的所有信息都可以叫做一条记录(record)。每一条记录都是由一系列的字段(field)组成的。一系列记录的集合就构成了数据表格(table)。对于一个简单的“平面文件”的数据库来说,它仅包含了一个数据表格,而对一个“关系型”数据库来说,它却包含两个或两个以上的数据表格,表格的各字段之间存在这一种或多种关系(有时可以把这种关系叫做“链接”)。简单的平面文件数据库的用途非常有限,而关系型数据库却能够包含数据以百万计甚至以亿计的记录,并可以利用复杂的标准对这些记录进行操作,例如排序和统计。把它们叫做“关系型”数据库,是因为需要在这些数据表格的字段之间建立特定的链接关系。关系型数据库的优点在于:通过将一个表格中的字段与另一个表格中的字段联系起来,两个表格之间的信息可以相互调用,可以避免信息的重复记录,也可以避免管理上的混乱。因此关系型数据库可以减小数据库的体积,这对于大型的数据库来说具有非常重要的意义。建立web站点时,可以使用两种主要的数据库:microsoft sql server 和 microsoft access。micro sql server是一种功能齐全的客户机/服务器数据库产品,适用于系统经常被大量的用户查询的情况。对于查询次数有限的情况,则可以采用中小型数据库的代表产品microsoft access。microsoft access是理想的入门级产品,它提供了大量的向导,可以辅助完成数据库的创建和管理。2、数据源(dsn)asp网页通过dsn数据源或者dsn-less方式连接网页数据库。dsn数据源方式:asp网页通过标准的odbc(open database connectivity)数据源dsn(data source name)接口访问数据库数据。odbc属于一种标准的数据接口,提供各类应用程序一个数据访问的标准方法。odbc规范为应用程序提供了一套高层调用接口规范和基本于动态链接库的运行支持环境。使用odbc开发数据库应用程序时,应用程序调用的是标准的odbc函数和sql语句,数据库的底层操作由各个数据库的驱动程序完成。使用dsn数据源方式,用户必须以手工的方式进行odbc配置,添加一个指向用户数据库的系统数据源dsn,asp网页使用dsn数据源字符串连接至用户数据库,例如:strdb-dsn=”dsn=dsn名称;uid=xxx;pwd=xxx”dsn-less数据源方式:使用本方式连接数据库,就必须自行提供dsn数据的相关信息,最重要的是驱动程序。例如:strdbconn=”driver=microsoft access driver (*.mdb); dbq=c:userdb.mdb”3、结构查询语言(sql)sql是结构查询语言(structure query language)的英文缩写,它是使用关系模型数据库的应用语言,由ibm在七十年代开发出来的,实现了关系型数据库中的信息检索。1992年制定了sql标准sql-92,它的全名是“international standard iso/iec9075:1992, database language sql”。sql标准的确定使大多数数据库厂家纷纷采用sql语言作为其数据库检索语言。利用sql语言,可以查询和管理自己的数据库。它由大约30条命令构成,但实际只需要少数的几个命令就可以完成相当多的工作,常用的sql查询命令有:select、insert、delete、update等。三、系统分析3.1需求分析系统的综合要求1、系统界面要求系统的初始界面假定用户是匿名登录,用户可以通过初始界面提供的统一的用户登录接口,登录进入各自的操作界面2、系统功能要求本系统操作用户按不同级别依次可分为:匿名用户、普通会员用户、版主会员用户、超级用户。高级别的用户可以继承低级别用户的公用功能。同时,各级别用户具有一定的只有以本级别身分登录才具有的私有功能。匿名用户功能要求-通用功能:查看各版面文章、查看系统版主列表、查看系统会员列表;私有功能:注册为系统正式会员、会员找回遗失密码、登录为正式会员。普通会员功能要求-通用功能:发表或回复帖子、个人资料维护、退出或重新以匿名身分登录;私有功能:申请为版面版主、注销会员资格。版主会员功能要求-通用功能:帖子管理、张贴公告、友情链接管理超级用户功能要求-通用功能:论坛基本设定、版面管理、版主会员管理、普通会员管理3、 系统性能要求对于帖子查看、发表帖子以及回复帖子这类频繁发生的系统操作,要采取适当的技术优化这类数据操作,以提高数据存取效率。4、安全性保密性可靠性等其它方面的要求高级别用户的所有管理操作要有针对低级别用户的身分识别功能,以防止低级别的用户越权执行高级别用户才具有的操作功能。3.2系统的数据要求根据系统的功能需求,本系统管理和维护以下几种数据元素(实体entity):会员、管理员、论坛、论坛版面、帖子、友情链接、日志。1、会员实体会员用户包含这样一些基本属性:用户名、用户密码、用户密码提示问题、用户密码提示问题答案、用户email、用户真名、性别、出生年月日、主页url、联系方式、证件名称、证件号码、积分。其中,用户名为用户唯一标志,不允许重名。积分为此用户在本论坛发表文章以及文章被其它用户关注程度所累积的分数,作为衡量此用户在本论坛活跃程度的一个标志。2、管理员管理员实际上派生于会员用户,意味着只有会员用户才有资格申请本论坛各版面的管理权限,因此,他除了包含会员用户所有的基本属性以外,还应包含以下几个属性:申请管理版面、申请理由、申请被批准状态。一个管理员可以管理几个版面,一个版面可以由几个管理员管理,所以,应该有一个管理员序号来唯一标志这个实体。另外,管理员也分为两类,一类是超级管理员,具有管理和维护本论坛所有数据信息的权限,另一类是普通版主,只能管理与某版面相关的数据信息,可以用申请管理版面以及申请被批准状态来区分这两类管理员,如果申请管理版面为零用申请被批准通过,则此会员就为超级管理员,如果申请管理版面在本论坛存在且申请被批准通过,则此会员就为版主管理员,否则,此会员仍为普通会员。3、论坛论坛基本信息比较稳定,只能为超级管理员所维护,此实体包括以下一些基本属性:论坛名称、论坛版权信息、论坛公告、公告内容。4、版面论坛版面包含这样一些基本属性:中文名称、英文名称、版面简介、版面公告。此外,论坛版面实体与管理员实体有联系,与帖子实体也有联系。5、帖子帖子包含以下一些基本属性:所属版面,作者,标题,帖子类型,所属主贴,回复数量,点击次数,标题图像,帖子内容,帖子书写时间,最后一次更新帖子时间。帖子包括两种类型:主帖和回复。帖子序号为此帖子唯一标志。本系统实体之间主要有以下几类联系(relation):用户与论坛版面之间存在管理联系(m:n)、用户与帖子之间(1:m)、用户与友情链接(1:m)、用户与日志(1:m)、论坛版面与帖子(1:m)几个基本实体-联系图(er图)如图2,图3所示:管理申请管理理由批准否用户名密码email性别生日其它用户m论坛版面版面名简介公告n图2 用户与版面之间管理关系er图发表发表时间用户名密码email性别生日其它用户1m帖子标题类型其它图3 用户与帖子之间的er图3.3系统的逻辑模型逻辑模型设计如图4所示:匿名用户普通会员版主会员超级会员论坛论坛版面友情链接帖子日志论坛数据信息处理系统图4 基本web的通用论坛系统数据流图*系统逻辑模型数据流简要说明:1、匿名用户与信息处理系统之间系统的输入数据流:注册资料、登录数据、找回密码数据系统的输出数据流:用户遗失密码、某篇帖子内容、会员列表、版主列表、版面列表、人气帖子列表、热门话题列表加工逻辑:注册加工、登录加工、用户找回密码加工2、会员用户与信息处理系统之间系统的输入数据流:版主资格申请、注册资料修改、发表帖子、回复帖子系统的输出数据流:某篇帖子内容、会员列表、版主列表、版面列表、人气帖子列表、热门话题列表加工逻辑:版主资格申请、注册资料修改、发表帖子,回复贴3、版主与信息处理系统之间系统的输入数据流:注册资料修改、发表帖子、回复帖子、友情链接维护、发布公告、管理版面帖子维护系统的输出数据流:某篇帖子内容、会员列表、版主列表、版面列表、人气帖子列表、热门话题列表加工逻辑:注册资料修改、发表帖子、回复帖子、友情链接维护、发布公告、管理版面帖子维护4、超级会员与信息处理系统之间系统的输入数据流:注册资料修改、发表帖子、回复帖子、友情链接维护、添加版面、论坛基本信息维护、论坛所有帖子维护、版主申请批复系统的输出数据流:某篇帖子内容、会员列表、版主列表、版面列表、人气帖子列表、热门话题列表加工逻辑:注册资料修改、发表帖子、回复帖子添加版面、论坛基本信息维护、论坛所有帖子维护、版主申请批复四、系统设计4.1系统概要设计系统数据的设计:参照用户与版面之间管理关系er图,可以将用户、版面转换成三个关系模式,设计如下:论坛版面关系模式(版面id#,版面中文名,版面英文名,版面简介)用户关系模式(用户名#,用户密码,用户密码提示问题,问题答案,用户email,用户真名,用户性别,用户出生年月,用户主页,用户证件名称,用户证件号码,用户联系方式,用户积分)管理员关系模式(管理员id#,用户名#,申请管理版面id#,申请管理理由,申请被批示状态)参照用户与帖子之间er图,可以将其转换成二个关系模式,设计如下:用户关系模式(用户名#,用户密码,用户密码提示问题,问题答案,用户email,用户真名,用户性别,用户出生年月,用户主页,用户证件名称,用户证件号码,用户联系方式,用户积分)帖子关系模式(帖子id#,标题,帖子类型,主帖子id,回复数量,点击次数,标题图像,帖子内容,帖子书写时间)按照上述转换方法,再结合系统一些功能以及性能方面的需要,系统所有关系模式设计如下:论坛基本信息(论坛信息id#,论坛名,版权说明,论坛公告标题,公告内容,最后一次修改时间)论坛版面信息(版面id#,版面中文名,版面英文名,版面简介)用户基本信息(用户名#,用户密码,用户密码提示问题,问题答案,用户email,用户真名,用户性别,用户出生年月,用户主页,用户证件名称,用户证件号码,用户联系方式,用户积分)管理员基本信息(管理员id#,用户名#,申请管理版面id#,申请管理理由,申请被批示状态)帖子基本信息(帖子id#,版面id#,用户名#,标题,帖子类型,主帖子id,回复数量,点击次数,标题图像,帖子内容,帖子书写时间,最后一次更新帖子时间)友情链接基本信息(链接id#,用户名#,链接名,链接url,链接说明)用户访问日志信息(日志id#,用户名#,用户登录ip,登录时间,退出时间)*注:第一个带“#”标志的属性为本关系模式的主键,其它为外键系统结构的设计:系统主页面自动进行身份判别,按照访问者的身份自动进入其相应的操作界面,其流程如图5所示:开始版主会员?超级会员操作界面版主会员操作界面普通会员操作界面匿名用户操作界面超级会员?普通会员?结束nyyynn图5 系统结果图各页功能:查看系统版主列表 adminorlist.asp查看各版面文章列表topic.asp?bid=xxx查看热门话题 topic.asp?method=hot查看人气帖子 topic.asp?method=hits查看某篇文章 show.asp?id=xxx申请为版面版主 adminapply.asp?bid=xxx注销会员资格 userlogoff.asp个人资料维护 usermodify.asp发表帖子 post.asp?bid=xxx回复帖子 post.asp?id=xxx&bid=xxx重新以匿名身分登录quitbbs.asp帖子管理 articleadmin.asp张贴公告 newspost.asp友情链接管理 linkadmin.asp?bid=xxx论坛基本设定 bbsset.asp版面管理 boardadmin.asp4.2 asp网页数据库的连接所有要进行数据库存取的asp网页都要以dsn-less方式进行数据库连接,由此我们可以将执行数据库连接的asp代码单独形成一个插入文件,通常插入文件都是以.inc作为扩展名,考虑到安全性的需要,防止用户直接输入文件名下载此插入文件,所以我们仍然以.asp作为插入文件的扩展名,比如,我们将一个用作数据读操作的数据库连接插入文件名命名为dbconr.asp,代码如附录1.1。其中的objdbconn.mode既为我们所做的数据库连接将用于操作的模式是读、写、或是读写。至于为什么需要设置mode属性?设置mode属性可以节省ado组件的处理时间。另外,数据用户的权限管理十分重要,设置mode属性能够有效率地规划整个web应用程序的用户权限。所以,从安全性和代码执行效率方面考虑,我们将读与写数据库连接插入文件分别开来,分别命名为dbconr.asp和dbconrw.asp。数据库连接操作是一个相当频繁的操作,我们可以采用适当的技术来进行数据库连接优化,以提高数据库连接性能。在asp的数据库编程中,connection对象是我们不可能离开的一个对象,在对数据库进行任何的操作,比如更新记录,插入,删除,检索等,都必须借助于connection对象来完成。形象地来说,connection对象就是程序与数据库沟通的管道,所有对数据库的操作,都必须经过它,因此,无论我们以何种方式连接数据库前,总是少不了执行下列的代码。set objdbconn=server.createobject(adodb.connection)建立一个connection对象的实例变量,然后才能在它的基础上建立recordset对象或是command对象来操作数据库。既然connection对象是如此的重要,那么如何优化和管理好connection对象对数据库程序来说是极其重要的,它关系到程序的性能。4.3 asp网页数据库的操作关于网页数据库的操作,asp拥有三种方法:ado组件的connection对象配合sql语法;ado组件的command对象执行sql语法;使用ado组件的recordset。每种方法各有特点。1、ado组件connection对象配合sql语法在网页上使用sql指令处理数据的访问,需要使用ado组件的connection对象建立数据连接,以便让我们下达sql指令到服务器端的数据库,处理表中的记录。asp网页数据库的连接所介绍的方法,首先建立一个connection对象;然后再打开dsn-less,同时,根据将要进行数据操作的类型,设置其mode属性;最后,使用connection对象的execute方法下达sql指令,通常在使用execute方法执行sql指令前,应该指定其commandtimeout属性。以会员注册为例,用户填写完注册资料以后,提交系统,系统进行用户资料插入操作代码如附录1.2所示。这是最基本的数据库操作方式,特别是对于表的插入、删除和更新记录以及单条数据的查询操作,是三种方式中最为简单有效的一种。本系统中,用户身份验证、发表帖子以及回复帖子等相关数据库操作相当频繁,对数据存取效率有相当的要求,至于在数据存取的灵活性方面要求不高,因此,大部分都是采取ado组件connection对象配合sql语法这种数据库操作方式。2、ado组件的command对象执行sql语法command对象和connection对象的execute方法一样能够执行sql指令。在建立command对象前一样需要建立和打开数据连接,假设活动连接objdbconn已经建立好,其后步骤如下所示:step1:建立command对象,其程序代码如下:set objdbcommand=sever.createobject(“adodb.command”)step2:接着指定activeconnection属性为目前打开的数据连接,代码如下:objdbcommand.avtiveconnection=objdbconnstep3:指定commandtext属性为要执行的sql指令,程序代码如下:objdbcommand.commandtext=“select * from userlist”step4:使用execute方法执行sql指令,objrs就是取得的记录集合,代码如下:set objrs=objdbcommand.execute上述步骤可以取得所有注册会员的详细注册资料,至于添加、删除和更新记录只需下达不同的sql指令。需要注意的是,command对象并不支持close方法,所以关闭command对象,只需设为nothing即可。建立复杂的sql语句,通常得事先进行许多复杂的数据类型转换,使用command对象配合parameters数据集合建立sql指令则相对来说比较简单,因为对象本身就能够自己处理复杂的数据类型转换,另外,比较connection对象直接执行sql语句来说,操作要灵活。command对象主要的目的是用在存储程序(store procedure),简单地说,存储程序是一些默认的处理程序。这个部分需用要数据源本身拥有指令处理的能力,象ms sql server就支持存储程序,但ms access这类中小型数据库系统就不支持存储程序。本系统采用ms access数据库,所以本方法作为未来系统扩展升级时数据库操作的首选方法。3、使用ado组件的recordsetrecordset对象为ado组件最重要的对象,从英文名字看来就是“记录集合”。它将表全部或部分的记录内容,象使用容器一样暂放所需的记录,recordset对象能够显示表的内容或进行记录数据的分析处理。4.4 asp网页安全性的实现方法本bbs论坛系统有会员身份权限限制的功能网页相当多,频繁地要求用户输入用户名以及密码,然后比较数据库中会员注册表数据以确认用户身份,再根据用户的身份来确定是否具有本网页的访问权,将会消耗大量的服务器资源,极大地增加web服务器的负担。此时,我们可以利用asp的内置对象session。当一位尚未建立session对象的用户浏览到web站点的asp程序时,asp就会自动产生一个新的session对象,并且指定唯一的sessionid编号。此后,在浏览此asp程序和即将在站点内浏览其它asp程序的过程,我们称为一个session期间。web服务器可以凭借读取asp程序时传送的sessionid判断用户是否仍在session期间,直到session对象timeout属性所设置的时间,默认为20分钟或执行abandon方法。每当读取新的asp程序后,timeout属性都会归零,重新计算,所以除非没有浏览站点,否则session期间绝对超过20分钟。每一位用户都可以拥有一组专用的session变量。虽然每位用户的session变量名称相同,但是其内容可就不同,而且只有该用户拥有权利读写自己的session变量,我们可以利用session的这个特性来实现asp网页的安全保护。在本系统设计了一个asp网页userlog.asp,如果用户想以普通会员的身份发表帖子,或以版主身份管理版面,或以超级管理员身份进行论坛管理,则用户在进入系统之前必须通过userlogin.asp进行登录,login.asp会将用户输入的用户名及密码拿来与数据库中的资料相对比,以确定用户的合适身份,否则,用户只能以匿名用户身份浏览本论坛帖子,却不能发表帖子或回复帖子,当然更不能进行论坛的相关管理操作了。用户的身份将被写入session对象的username以及adminboard变量,username保存其会员名称,adminboard保存其操作权限,为“0”则其为超级会员,为空则为普能会员,为版面id则为版主。userlog.asp源代码如附录1.3所示。确定了用户的会员身份以后,在每个需要进行身份识别的asp网页插入身份识别代码,如果此用户具有访问这个asp网页的权限,则输出其相应的html文件,否则,系统转到用户登录网页要求用户重新登录以取得访问此asp功能网页的合法身份。例如,论坛基本信息设置asp网页需要访问者具有超级会员身份,在本网页前必须插入以下一段代码如附录1.4所示。4.5系统运行效果应用环境:1、硬件环境100m以太网;intel centrino duo服务器;支持win vista以上的pc客户机2、软件环境服务器端安装了windows vista系统、iis6.0web服务器、ms access2007数据库等;客户端安装了windows vista系统、ie7.0浏览器等。运行效果截图如图6、图7、图8、图9所示:图6 登陆界面截图图7 登陆错误界面截图图8 后台登录界面截图图9 后台管理界面截图五、总结与展望在老师的指导和督促下,经过三个月的紧张设计与开发,我的毕业设计:基于asp的bbs留言板系统终于开发完成了。 通过本系统的开发使我所学的专业知识得到了综合的运用,对以前很多抽象、枯燥的理论知识加深了理解,同时也使我学会了利用结构化程序设计思想开发管理信息系统,并用模块化方法加以实现。通过本次的系统开发,我深刻地认识到系统开发的每一步都是以上一步为基础的。因此每一步的代码的编写都必须正确、完整,否则就会给下一步的工作带来不必要的麻烦,加大工作量。因为系统是为用户服务的,所以要充分了解用户的需求,考虑用户的特点和使用方面的习惯,以协调人机关系。在系统实施中应结合各方面的要求,尽可能选择自己熟悉的程序设计语言。系统测试中要根据实际情况设计有效的测试方法。 在系统设计过程中,从用户的角度出发,在系统的可用性和易用性上做了很多功夫,力求能达到最好的效果。虽然平时经常浏览论坛,比较熟悉一般论坛的流程及功能,但由于我的编程实现能力和毕业设计的时

温馨提示

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

评论

0/150

提交评论