版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
安徽工业大学
毕业设计(论文)说明书
安徽工业大学
┊
┊ 毕业设计(论文)任务书
┊
┊
┊ 课题名称 程序设计论坛网站的设计与实现
┊
┊
┊
┊ 学 院 计算机
┊
┊ 专业班级 网络工程062
┊
┊ 姓 名 邢琳
装
┊ 学 号 069074273
┊
┊ 毕业设计(论文)的主要内容及要求:
┊ 1、认真复习软件工程、数据库、计算机网络等相关知识。
┊ 2、学习和熟悉PHP动态网页设计技术。
订 3、按照软件工程的要求,对程序设计论坛网站进行详细的需求分析,在此基础上,
┊ 进行功能设计、界面设计,最后编码调试实现。要求能够实现用户在线浏览论坛
┊ 帖子,分主题发表帖子和回复等功能。
┊ 4、完成毕业论文的撰写、修改和定稿。
┊
┊线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊ 第I 页
摘要
现在互联网已经成为人们快速获取、发布和传递信息的重要渠道,论坛是
Internet 上最常用的交流工具之一,越来越多的人开始把论坛作为他们获取信息的
┊ 手段和交流的平台。
┊ 本毕业设计就是基于PHP+MySQ的L论坛设计,以PHPExpertEditor 作为开发基
┊
┊ 础,采用WAMP架构,辅用CSS技术,并通过使用模板技术,在Apache本地服务器上
┊ 实现了较完整的论坛功能。PHP语言执行效率高并易于同数据库连接, MySQL数据库
┊ 访问速度快、稳定性好。
┊ 该论坛主要用来为用户提供一个计算机程序语言的交流环境,学习资料的共享,
┊ 各类计算机程序技术的讨论,问题的求助都可以在论坛上发布,该论坛主要包括前台
┊ 和后台两大部分,前台主要实现用户管理和帖子管理,前者包括用户注册、用户登录、
┊
┊ 用户密码找回、用户信息修改等;后者包括包括帖子内容显示、帖子发布和回复信息
┊ 等。后台主要实现管理员对论坛系统的维护。
┊装
┊
┊ 关键词:论坛;PHP;Apache;MySQL;模板
┊
┊
┊订
┊
┊
┊
┊
┊线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊ 第II 页
Abstract
NowadaystheInternet hasbecomeanimportant channelfor peopletogain,
publish andtransfer information ontheInternet, BBSisoneofthemostcommon
┊ communicationtools,more andmorepeoplemakeBBSastheplatformto obtain
┊
┊ informationandcommunicatewitheachother.
┊ Thisdesignis basedontheBBS+MySQL,usingPHPExpertEditor asexploited
┊ foundation, adopting WAMParchitecture,complementary with CSStechnique and
┊ throughtheuseoftemplatetechonolgy,itrealizedalmostcompletelyBBS
┊ functions in Apache local server. The efficiency of PHPlanguage
┊ implementationishighanditiseasytoconnectwithMySQLdatabaseaccess
┊ whichisfastspeedandgoodstability.
┊
┊ ThisBBSismainly usedtoprovide usersacomputerprogramminglanguage
┊ enviromenttoexchange,shareinformationandallkindsofdiscussionabout
┊ computerprogramtechnologyandquestionscanpostontheBBS.ThisBBS
装 includes two parts:forestage and backstage.Forestage is mainly used to
┊ realiseusermangement,includingtheuserregistration,userlogin,user
┊ passwordretrievedanduserinformationmodificationetc.Backstagemainly
┊
┊ realizestheBBSsystemadministratorformaintenance.
┊订
┊
┊ Keywords:BBS;PHP;Apache;MySQL;Template
┊
┊
┊线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊ 第III 页
目录
1.1
课题的研究意义
1
1.2
课题的研究现状
1
1.3
论文的研究内容
1
1绪论 1
┊
┊
┊ 1.4 系统的设计思路 2
┊ 2理论基础 3
┊ 2.1WAMP架构介绍 3
┊ 2.1.1WAMP架构的提出 3
┊ 2.1.2WAMP架构的优势 3
┊ 2.1.3WAMP架构的研究现状 3
┊ 2.2PHP技术 3
┊ 2.2.1PHP技术概述 3
┊ 2.2.2PHP技术特点 4
┊
┊ 2.3MySQL数据库技术 5
装 2.3.1MySQL数据库概述 5
┊ 2.3.2MySQL图形管理工具phpMyAdmin 6
┊ 2.4论坛采用B/S架构 7
┊ 3总体设计 8
┊ 3.1论坛可行性分析 8
┊ 3.2 论坛需求分析 8
订 3.3 功能模块的设计 11
┊
┊ 3.4 论坛系统数据库的设计策略 13
┊ 3.4.1 概念结构设计 13
┊ 3.4.2 逻辑结构设计 15
┊ 4 论坛系统详细设计 21
线 4.1 数据库的访问 21
┊ 4.2CSS样式表的使用 22
┊ 4.3 论坛系统功能的实现 22
┊ 4.3.1 系统功能 22
┊ 4.3.2 普通用户功能 23
┊ 4.3.3 版主功能 27
┊ 4.3.4 管理员功能 29
┊ 4.4 数据的安全性研究与实现 30
┊ 4.4.1 论坛系统的安全体系 30
┊ 4.4.2 论坛系统安全性的实现 31
┊
┊ 5论坛系统性能优化 32
┊ 5.1 论坛系统测试 32
┊ 第IV 页
5.2模板技术在论坛中的应用 33
6结束语 36
致谢. 37
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊装
┊
┊
┊
┊
┊订
┊
┊
┊
┊
┊线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊ 第V 页
安徽工业大学
毕业设计(论文)说明书
┊
┊
共43
第
PAGE
7
页
页
1绪论
1.1课题的研究意义
┊ 随着我国改革的深入和发展,公共传媒的发展也日新月异。人们己经不单单只从
┊ 电视、报纸上得到需要的新闻报道,Internet传播介质的出现使得人们能够从更加丰
┊ 富的网络资源中得到自己想要的信息。论坛是 Internet上最常用的交流工具之一,越
┊
┊ 来越多的人开始把论坛作为他们获取信息的手段和交流的平台。
┊ 论坛系统已经成为互联网上人与人之间交互的必备工具, 特别是做网站必备。以
┊ 前我们一直使用留言本形式。论坛与留言薄的区别在于论坛上的消息是分层次的。 每
┊ 个人都可以在论坛上发表信息,别人可以回复这条消息。回复消息与被回复消息之间
┊ 存在一种“父子”关系。如果将最上层的消息当作“根消息” ,则每一条子消息都有
┊ 一个唯一的“父”消息。因此,论坛用做发表意见的场合是最合适的,因为可以从中
┊
┊ 看到不同消息之间的关系,访问者不至于在浏览时因为头绪太乱而迷失方向。
┊ 由于论坛系统的论坛作为人们日常生活获取信息的手段和交流的平台, 因此本文装 研究论坛系统的开发具有重要的实践意义。
┊ 1.2课题的研究现状
┊ 随着互联网技术的发展,现在的论坛系统功能越来越多,不但可以发帖回帖,还
┊ 可以上传视频和提供下载等等。有的论坛系统为了达到更好的用户体验,在实现了基
┊
┊ 本的讨论功能后,设计了很多个性化的功能,比如在论坛中设置了“个人空间”、“加
订 为好友”等功能,还有的论坛系统,通过提供免费的空间来增加论坛的发帖量。
┊ 当然有些论坛系统的个性化功能设计新颖,也非常有使用价值,但有些个性化功
┊ 能的设计却既没有多少使用价值,同时又大大的影响了系统的性能。以目前许多学生
┊ 自主创办的论坛为例,都因盲目重视功能,忽略了性能,系统运行一段时间后都因性
┊ 能问题不得不更换其他论坛系统,每更换一次,论坛的数据就全部丢失。由此可见,
┊ 实现一个论坛系统如果只重视功能而忽略性能,破坏的影响是非常严重的。线
┊ 经过对一些目前国内外比较典型的 BBS论坛系统的设计和实现方式的分析,本文
┊ 认为去掉系统不必要的个性化功能,实现一个性能好、速度快、安全性高并且基本功
┊ 能完善的论坛系统是很必要的。
┊
┊ 1.3论文的研究内容
┊ 论文的主要研究内容是根据目前聊天工具的现状和需求,设计出一个具备交互、
┊ 执行下载数据或程序、上传数据、阅读、与其它用户交换消息等功能,并在实际应用
┊ 中予以实现和评价。具体的研究内容如下:
┊
┊ 对论坛系统目前的国内外发展现状进行对比分析, 找出交流系统存在的问题,提
┊ 出相关的解决策略。
结合解决策略,设计新的适合时代特点的论坛系统, 并对照原有的传统的交流工具分析论坛的特点和适应性,完成论坛的系统实现。
1.4 系统的设计思路
系统将采用软件工程的生命周期过程来进行分析设计。 其基本思路:首先,是进
┊ 行系统可行性分析和系统的初步设计规划。其次进行需求调研,主要通过对国内外各
┊ 种大型论坛进行亲身体验、现有开源论坛系统的研究及进行网上调查与提问等方式得
┊ 到需求,在此基础上进行需求分析以确定需求是否值得设计开发, 完成业务逻辑分析
┊ 与设计,确定系统的功能模块等。接着准确地进行数据库设计、界面设计以实现系统
┊ 所要达到的规划目标。最后进行系统布署与测试,以改进系统性能。
┊
┊
┊
┊
┊
┊
┊
┊装
┊
┊
┊
┊
┊订
┊
┊
┊
┊
┊线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
理论基础
WAMP架构介绍
WAMP架构的提出
┊ 1998年,MichaelKunze为德国计算机杂志写了一篇关于 Free软件如何成为商
┊ 业软件替代品的文章,创建了 LAMP这个名词,Linux 操作系统、Apache网络服务
┊
┊ 器、MySQL数据库和PHP(Perl或Python)脚本语言组合而成的—— LAMP (四
┊ 种技术的开头字母组成),随之LAMP技术成为了开源软件业的一盏真正的明灯。
┊ 随着互联网开源潮流的迅速发展,全球 IT业正迎来一个新的发展格局成长期,
┊ 而LAMP所代表的开源软件以其开放性、低成本、安全性、适用性以及可靠的性能,
┊ 正对传统软件、硬件和系统集成商产生巨大的冲击,同时,也给创新型 IT企业、程
┊ 序开发者创造了前所未有的机遇。
┊
┊ 中国开源软件推进联盟主席陆首群说, LAMP 也可以派生出WAMP(W 代表
┊ Windows操作系统)。事实上,PHP与.Net是并存的,PHP也可以和Windows捆绑在
┊ 一起,两者并没有冲突,可以因地致宜地使用开源与闭源混合架构。装 本系统就是采用WAMP架构进行论坛程序的设计与实现。
┊ 2.1.2WAMP架构的优势
┊
┊ WAMP架构易于开发、安全性高、适用性强、性能可靠、更新速度快、成本低,
┊ WAMP被许多开发者视为“黄金组合”。
┊ 由于Apache是免费的,此外还有免费数据库 MySQL服务器和开源语言PHP共订 同构建了广受追捧的“WAMP(LAMP)”套件,性价比极高,因此赢得了网站开发人员
┊ 的广泛青睐。
┊
┊ 2.1.3WAMP架构的研究现状
┊ 在今天,全球已有2000万个网站使用PHP,包括最流行的雅虎、Google、百度,
┊ 也包括像汉莎航空电子订票系统、德意志银行的网上银行、华尔街在线的金融信息发线 布系统,甚至军队系统这类五花八门和苛刻的环境。
┊ 随着社区BBS及Web2.0应用的普及,以及国内 PHP技术支持者的不断增加,
┊
┊ 据PHPChina资料统计在中国前200名的网站中有61%的采用了WAMP技术。业内
┊ 人士预计,在服务器平台及软件方面, WAMP市场占有率将在未来两年内取得更高
┊ 的市场分额。
┊
┊ 2.2PHP技术
┊
┊ 2.2.1PHP技术概述
┊ PHP全称为PersonalHomePage,是一种跨平台的服务器端脚本技术。于 1995
┊ 年开始发行使用,到1998年成为一个成熟的软件产品。它最初是一个人为了写他的
主页而用Perl写的“包装”程序,后来因为用的人多了,就发展了起来。现在 PHP已经成为最流行的Web脚本语言之一,它运行在Web服务器端,根据用户请求或服务器端的数据产生动态网页。它功能强大,和 HTML 脚本融合在一起,并内建访问数据库的能力。它能够作为ApacheWeb服务器的模块执行,也使得它的执行效率要
┊ 高于普通的CGI程序。
┊ PHP是编程语言和应用程序服务器的结合,PHP和其它的编程语言类似,使用
┊ 变量存储临时数值,使用操作符处理变量。PHP的真正价值在于它是一个应用程序服
┊ 务器,应用程序服务器是指一个把几个不同的技术组合为一个完整的套件的程序, 这
┊ 些技术包括:一个强壮的编程语言;存取数据库中存储的数据;支持 Internet协议,
┊ 尤其是电子邮件和HTTP协议。PHP大量借用了C、Java、和Perl语言的语法,并加
┊
┊ 入了各种PHP自己的特征,使Web开发者能够写出快速的动态页面。
┊ PHP是一种跨平台的服务器端嵌入式脚本技术。 PHP页面是一种文本文件,是
┊ 在普通HTML页面文件中嵌入PHP脚本语句,由服务器解释和翻译成普通的 HTML
┊ 文件,然后传送给客户端浏览器,这一点和 ASP一样。PHP脚本语句段以“<?”为
┊ 开始,以“?>”为结束。“<?”和“?>”之间的脚本语句由服务器软件调用 PHP脚本
┊ 解释引擎解释后替换为普通的 HTML脚本。
装 PHP语法和C、Perl的语法很相似,并主要来源于 C语言,如控制流语句与C
┊
┊ 几乎完全一样、变量之间的运算符与C的类似、函数定义和调用与C的类似等。PHP
┊ 的变量名前面必须有一个$号,如$Var1、$Var2。PHP的变量作用域规定也类似于C,
┊ 即缺省认为主函数中的变量是全局变量,而函数中的变量都是局部变量。在 PHP中,
┊ echo和printf函数用来向HTML页面中输出HTML内容,其中echo输出无格式字符订 串,printf 输出格式化的字符串。如echo("welcomeyou to comehere")和
┊ printf("%s,%d",str1,int1)。
┊
┊ 2.2.2PHP技术特点
┊ 现在通常用的服务器端脚本技术是 CGI。现有的Web后台程序,绝大多数采用
┊ 下列几种技术编写:Perl或采用第三方解决方案(如ASP),虽然每类方案都有各自线 的强项,但均不是理想的解决办法。Perl编写CGI是使用得最多的方法,在网络上也
┊
┊ 有很多现成的脚本可以拿来修改使用,但它却存在公认的性能问题:由于 Web服务
┊ 器运行时需调用解释程序解析代码,当站点的访问人数激增时,Web服务器的性能也
┊ 必将直线下降,另外则是它的数据库连接功能非常弱,某些情况下甚至还会降低数据
┊ 库的存取速度。第三方厂商提出了较好的解决方案:如Microsoft的ActiveServerPage。
┊ 它具有运行速度快,数据库操作功能强大等特性,受到了许多开发者的欢迎,但它们
┊ 只能单纯地运行于个别平台 (NT),对要求更高回应率的网站来说(大多数大中型网站
┊ 均建于Unix或Linux平台,Apache系列Web服务器)还是不能顺利采用(注:目前
┊
┊ 已有人提出这两种技术在Unix系列平台上应用的方案,但要么是不具备源技术的全
┊ 部优秀功能,要么就是只能应用于个别 Unix 平台)。1997年,PHP开发小组在原
PHP/FI2.0的基础上,开发出了全新的PHP3,免费让所有人使用和(或)更改解释器源代码。相对于传统的CGI语言,PHP拥有下列超群的特性:
(1)易学易用:PHP的语法结构大部分借用了C、Java、Perl的好的语法框架,有以上编程经验的开发人员可快速地掌握投入实际使用。
┊ (2)运行速度快:PHP采用HTML内置标记技术,解释程序本身作为Web服务器的一
┊ 个模块运行,相当大地提高了运行时的解析速度。经测试表明,在 Web站点访问量
┊ 非常大时,PHP的解析速度相当于传统CGI程序的4倍,非常适合大中型站点的应
┊ 用。
┊ (3)跨多个平台:目前PHP可在Windows、Unix、Linux的Web服务器上正常运行,
┊ 支持IIS,Apache等通用Web服务器,用户更换平台时,无需变换 PHP代码,可即
┊
┊ 拿即用。
┊ (4)效率高:和其它的解释性语言相比,PHP系统消耗较少的系统资源。当PHP作为
┊ ApacheWeb服务器的一部分时,运行代码不需要调用外部二进制程序,服务器解释
┊ 脚本不需要承担任何额外负担。
┊ (5)开放源码:所有的PHP源码都可以得到。
┊ (6)没有运行费用:PHP是免费的。
装 (7)基于服务器端:由于PHP是在Web服务器端运行的,PHP程序可以很大、很复杂
┊
┊ 而不会降低客户端的运行速度。
┊ (8)嵌入HTML:因为PHP语言可以嵌入到HTML内部,所以PHP容易学习。
┊ (9)简单的语言:和Java和C++不同,PHP语言坚持以基本语言为基础,然而它的功
┊ 能也强大到足以支持任何类型的 Web站点。
订 (10)极其强大的数据库支持:PHP最强大也最有代表性的特点在于它的数据库层,它
┊ 内置了对很多数据库的支持,而不再需要特殊扩充,使得编写基于数据库的网页变得
┊
┊ 非常简单。目前所支持的数据库有 Oracle、Sybase、FilePro、mSQL、Velocis、MySQL、
┊ In-formix、Solid、dBase、ODBC、Unix、dbm、PostgreSQL、MSSQLSERVER等。
┊ 针对每个数据库都有一组函数用于数据库访问和操作,如对 MySQL有mysql_close、线 mysql_connect、mysql_create_db、mysql_db_query等函数。
┊ (11)文件存取:PHP有许多支持文件存取的函数。
┊ (12)文本处理:PHP有许多函数处理字符串,其中包括模式匹配的能力。
┊
┊ (13)复杂的变量:PHP支持标量、数组、关联数组等变量,这给用户提供了以支持其
┊ 它的高级数据结构的坚实基础。
┊ (14)图像处理:用户可以使用PHP动态地创建图像。
┊
┊ 2.3MySQL数据库技术
┊ 2.3.1MySQL数据库概述
┊
┊ MySQL是一个小型关系型数据库管理系统, 开发者为瑞典MySQLAB公司。目
前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体成本而选择了MySQL作为网站数据库。MySQL的特性:(1)核心程序采用完全的多线程编程。线程是轻量级的进程,它可以灵活的为用户提供服务,而不用浪费过多的体统资源。
┊ (2)可运行在不同的平台上。(3)它有一个非常灵活且安全的权限和口令系统,当客户
┊ 与一个服务器链接时,它们之间所有的口令传送被加密,而且它允许基于主机的认证。
┊ (4)它拥有一个非常快速的基于线程的内存分配系统,而且没有内存漏洞,所以可以
┊ 不断地使用而不用担心其稳定性。事实上,它的稳定性足以应付一个超大规模的数据
┊ 库,如跨国公司的处理流程。(5)PHP的强力支持。PHP中提供了一整套的MySQL
┊ 函数,用来对MySQL进行支持。
┊
┊ 与其他的大型数据库例如Oracle、DB2、SQLServer等相比,MySQL自有它的
┊ 不足之处,如规模小、功能有限等,但是这丝毫也没有减少它受欢迎的程度。对于一
┊ 般的个人使用者和中小型企业来说, MySQL 提供的功能已经绰绰有余,而且由于
┊ MySQL是开放源码软件,因此可以大大降低总体成本。
┊ 相对说来,MySQL内定最大连结数为 100个使用者。但是,我们绝对不可以
┊ 用一个程序的内建设定来判断它的效能。到目前为止,我们还没听说过使用 MySQL
装 的较大而且访问频繁的网站上的用户有任何抱怨。
┊
┊ 2.3.2MySQL图形管理工具phpMyAdmin
┊ MySQL 的标准操作全部是在字符界面下的,这样可能会让习惯图形界面的用户
┊ 觉得不友好。因此出现了一些非命令行方式的管理 MySQL的工具。
┊ 使用最多的MySQL管理工具是phpMyAdmin。phpMyAdmin(简称PMA)是一个订
┊ 用PHP编写的在网络上直观管理 MySQL数据库的软件,是众多MySQL管理员和网
┊ 站管理员的首选数据库维护工具,通过phpMyAdmin可以完全对MySQL数据库进行
┊ 操作,例如建立、复制、删除数据等。
┊ phpMyAdmin的主界面如图2.1所示。
┊线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊ 图2.1phpMyAdmin主界面
安徽工业大学
毕业设计(论文)说明书
┊
┊
┊
┊
┊
┊
┊
┊
┊
共43
第
PAGE
11
页
页
2.4论坛采用B/S架构
PHP采用浏览器/服务器(B/S)模式架构。所谓B/S结构,就是通过浏览器(Browser)来访问服务器(Server)上的内容,客户端不需要运行其他软件。
B/S结果的优点是维护方便。客户端运行的软件是一个随操作系统同时发布的浏览
┊
┊ 器,例如IE,而不用安装其他软件。浏览器通过网络获取服务器的信息。 B/S结构系
┊ 统的所有的维护、升级工作都只在服务器上运行,服务器代码修改后,客户端就能获
┊ 取最新的信息。
┊ 服务器端的PHP代码会转化为HTML代码传输到客户端,一个基本的HTML代码
┊ 如下所示:
┊ <html>
┊ <head>
┊
┊ <title>标题</title>
┊ <body>
┊ 主题
┊ </body>
装 </head>
┊ </html>
┊
┊
┊ 在实际应用中,通常PHP代码和HTML代码混合使用以完成一个页面的显示。
┊订
┊
┊
┊
┊
┊线
┊
┊
┊
┊
总体设计
3.1论坛可行性分析
可行性研究的目的是为了对问题进行研究, 以最小的代价在最短的时间内确定问
┊ 题是否可解,经过对项目进行详细调查研究,进而便能初拟系统规划报告,对系统开
┊ 发中将要面临的问题及其解决方案进行初步设计及合理安排。 下面简要对本系统开发
┊ 的可行性加以论述:
┊ 在经济可行性上,由于本系统是基于开源项目,在整个过程使用 WAMP架构,
┊
┊ 而且是免费的,同时在设计过程我参照了相关系统来设计,比如用 asp论坛或jsp论
┊ 坛。当然,系统也将按照软件工程的步骤来完成。
┊ 在技术可行性上,系统将基于MVC架构,MVC 即视图,模型,控制器。这种
┊ 设计模式是一个很好系统开发的途径,我们可以为一个模型在运行同时建立和使用多
┊ 个视图,这样就可以使系统在健壮性,代码重用和结构方面上一个新的台阶。除此之
┊ 外,因为模型独立,这样就可以把一个模型独立地移植到新的平台工作。
┊
┊ 在社会可行性上,论坛在当今非常流行,很大一部分是归结于社会的发展:从互
装 联网最终用户角度来讲,论坛的出现,大规模实现了使用者从实在的世界到网络虚礼
┊ 的世界;从网站角度来看,所有网站设计出来就是要有人访问和交流。而论坛系统完
┊ 全符合网站的要求。从这两个方面上可看出,本系统的开发和应用能给互联网带来新
┊ 的交流工具与Web应用,能促进网络的发展,因此具有很好的社会作用。
┊ 从以上三点可以得知,开发此系统是可行的。
┊
订
┊ 3.2 论坛需求分析
┊ 需求定义是对系统的术语描述,分析系统是否能实现,或者是否能提供更多的功
┊ 能。
┊ 我们应该从使用者的角度来分析和编写一个论坛系统, 首先要确定论坛的功能是
┊ 什么,也是用户想要的论坛提供哪些功能。 我们在使用论坛的时是按照一定的流程来线 进行的,如:用户注册登入论坛,就一个或几个话题展开讨论,通过发帖功能来发布
┊
┊ 新的话题,通过回帖功能来回复已有的话题。管理员要管理论坛,具有的功能是创建、
┊ 编辑、删除论坛的版块,管理注册的用户,管理帖子。这样的流程就决定了论坛所应
┊ 具有的功能如图3.1所示。
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊ 图3.1流程图
┊ 帖子类有浏览、发帖、回帖和管理四个方法,浏览方法又可分为列表和查看两个
┊
┊ 子方法,管理方法又可分为编辑、删除、置顶三个子方法。如图 3.2所示,只有管理
装 员可以管理帖子,一般用户没这个权限的。
┊
┊
┊
┊
┊订
┊
┊
┊
┊
┊线
┊ 图3.2帖子对象相关用例图
┊ 用户类有注册、登入和管理三个方法,管理方法又可分为添加、删除和设置权限
┊
┊ 三个子方法。如图3.3所示,用户的信息和权限是由管理员来设置管理的。
┊
┊
┊
┊
┊
┊
┊
┊
┊ 图3.3用户对象相关用例图
┊
┊ 这样,当初列出的功能列表就分别有了各自的归属对象。
┊ 论坛一般存在两种用户,即注册用户和管理员。用户的权限是向下覆盖的,即上
┊ 级权限包括下级的权限,在论坛中,管理员是上级权限。接下来,需要将不同类的对装 象及其方法分配给不同的论坛用户。
┊ 与注册用户相关的功能,就是论坛的前台的主要功能。论坛系统的前台,是用户
┊ 讨论问题的平台,发帖、浏览、回帖一直贯穿用户的前台活动。同时,由于论坛系统
┊ 的帖子管理是管理员在浏览帖子时进行的,所以编辑帖子、删除帖子和置顶帖子等功
┊
┊ 能也安排在前台实现、其他与管理员相关的功能,包括版块管理、用户管理和设置都
订 需要管理员在后台进行操作。
┊ 通过以上的分析,论坛的基本功能就可以从众多需求中筛选出来。
┊ 现在,让我们来看看哪些是基本功能。
┊ 发帖。论坛最初是为了相互讨论话题而诞生的,发表帖子就是表达自己的看法,
┊ 与他人进行讨论,因为发帖是论坛首要的功能。
┊
线 浏览帖子。发表了帖子,就要供他人浏览查看,使他人分享自己的想法和经验。
┊ 回帖。浏览了他人发表帖子,就要发表自己的想法,参与讨论,就可以回复这
┊ 帖子。
┊ 发帖、浏览帖子和回帖的循环就构成了论坛,三大基本功能的相互关系如图 3.4
┊
安徽工业大学
毕业设计(论文)说明书
┊
┊
共43
第
PAGE
15
页
页
功能模块的设计
图3.4论坛的基本功能
上一节中确定了论坛的整体需求和详细需求。 但是只知道需求还是不行的,整体需求是对系统目标的一个模糊描述,经过分析后的详细需求是对系统中要实现功能的
┊ 设计语言的转换表达,一个是由用户表达的,一个是由系统的编写者来分析表达的。
┊ 但是这些需求的描述,无论多详细,都不能归纳成系统的相关模块,每个模块实际就
┊ 是功能的合理组合。要实现一个系统,还需要从寻求分析上升到软件设计阶段。
┊ 从上一节需求分析中得知,可以将功能分为前台和后台两类,因此模块也分为两
┊
┊ 大类:前台模块和后台模块。
┊ 用户在前台的注册、登录、以及修改个人的注册信息组合成注册登录模块; 用户
┊ 浏览模块、浏览主题帖列表、查看帖子组合成浏览模块;用户发帖、回帖、编辑自己
┊ 发布的帖子组合成发帖回帖模块;管理员编辑帖子、删除帖子和置顶帖子组合成管理
┊ 帖子模块。以上四个模块组成前台的功能模块。
┊ 后台模块都是与管理员相关的,设置论坛参数单独为后台设置模块;创建、修改
┊
┊ 和删除版块为管理版块模块;添加、删除和设置权限为管理用户模块。
装 如图3.5所示是论坛的模块体系图。
┊
┊
┊
┊
┊订
┊
┊
┊
┊
┊线
┊
┊
┊
┊
┊
┊
┊ 图3.5论坛的模块体系图
┊ 所以对于注册用户,在论坛的行为可以归纳如下行为。
┊ 注册个人身份,登录论坛,成功后可以修改自己的注册信息。这些行为只与
┊
┊ 用户自身相关,功能独立,设计成注册登录模块。
浏览版块列表,选择某版块,显示其下的主题帖列表,查看帖子内容。这些行为是用户读取论坛的版块及其帖子的相关信息,设计成浏览模块。
发表自己的帖子,回复已有的帖子,同时也可以编辑自己的帖子。这些行为是用户参与论坛讨论,发表自己见解的,设计为发帖回帖模块。
┊ 对于管理员,需要负责整个论坛的正常运转,因此需要更多的管理功能,可以归
┊ 纳如下行为。
┊ 具备注册用户的功能,即管理员也是论坛用户。
┊ 管理帖子。管理员对论坛的帖子有监督的权利,好的帖子要奖励,捣乱的帖
┊ 子要删除,置顶帖子,这些行为都是针对帖子的操作,设计成管理帖子模块。
┊ 管理版块。拥护注册成功后,需要管理员进行创建、管理版块信息,这些针
┊
┊ 对版块的操作,设计成管理版块模块。
┊ 管理用户。用户注册成功后,需要管理员赋予权限,才能使用论坛的相关功
┊ 能。同时,管理员可以自主添加、删除用户,这些针对用户信息的操作没,
┊ 设计成管理用户模块。
┊ 通过上面的分析我们可以得到用户的整体用例图,如图 3.6所示:
┊
装
┊
┊
┊
┊
┊订
┊
┊
┊
┊
┊线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊ 图3.6用户整体用例图
┊ 从用例图中,可以得到论坛的功能框架,即系统的各个部分已经确定,知道论坛
是什么样子。
论坛系统数据库的设计策略
数据库是信息系统的核心,它具有对信息进行收集、组织、存储、加工、抽取和
传播等功能。构筑数据库和盖房子奠基相似,数据库的设计直接关系系统的成败, 因
┊ 此要获得优秀的信息管理系统必须采用科学方法进行合理的数据库设计。 本节就数据
┊ 库的设计策略方面的内容作详细讨论。
┊ 该论坛系统的数据库设计分为概念结构设计、逻辑结构设计。
┊ 3.4.1 概念结构设计
┊
┊ 数据分析是数据库设计的第一步,包括下列内容:
┊ 1、调查论坛系统需要实现的功能
┊ 本论坛系统要实现以下功能:
┊ 1)系统功能(指论坛程序自动实现的功能)
┊ ①分论坛显示
┊ ②主题显示
┊
┊ ③在线用户列表
装 2)普通用户功能(论坛用户能够实现的功能)
┊ ①登录和退出论坛
┊ 用户需使用其在论坛中注册所得帐号和密码登录 (未登录而直接进入论坛的用户称为
┊ 访客,访客只能查看帖子,不具备其它功能)
┊ ②用户注册
┊ ③发文功能订
┊ 包括发帖子、回复帖子、修改删除自己发布的帖子
┊ ④查询功能
┊ 可查询注册用户及其对应的帖子
┊ ⑤用户控制面板
┊ 用户可在此处修改自己的个人资料,定制个性化的论坛功能线 3)版主功能(版主,也属于论坛用户的一种)
┊
┊ ①具有全部普通用户功能
┊ ②版内文章管理,包括增删改查
┊ ③取消或恢复用户在版内的发文权
┊ ④重要主题前置功能
┊ 4)管理员功能(论坛管理员能够实现的功能)
┊ ①管理员具有普通用户和版主的所有功能
┊ ②分论坛管理功能
┊
┊ ③论坛内的文章管理,包括增删改查
┊ ④论坛用户管理,包括增删用户,指定版主等
安徽工业大学
毕业设计(论文)说明书
┊
┊
┊
┊
┊
┊
┊
┊
共43
第
PAGE
19
页
页
⑤帐号封杀列表
2、编写数据流程图
根据论坛系统的具体功能,编写数据流程模式图如图 3.7所示。
┊
┊
┊
┊
┊
┊ 3、编写系统功能结构图
图3.7数据流程模式图
┊ 系统功能结构图如图3.8所示。
┊
┊
┊
┊
┊
┊装
┊
┊
┊
┊
┊订
┊
┊
┊
┊ 图3.8系统功能结构图
┊
线 根据上述分析的结果,编制初步E-R图。它表示信息世界中的信息实体及其相互联系,
┊ 初步E-R图如图3.9所示。
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊装
┊
┊ 3.4.2 逻辑结构设计
┊ 1、E-R图向关系数据模型转换
图3.9系统初步E-R图
┊ 定义一个关系模型是一个二维表 R(A1,A2,,, An),其中R为关系名,Ai为属
┊ 性名。确切讲,一个关系模型对应一个数据库基表。逻辑结构设计首先是将基本 E-R
订 图向关系数据模型转换,转换的方法涉及深奥的专业理论,此处不作论述。最简单的
┊
┊ 转换可以将基本E-R图中的每个实体定义为一个关系模型,一个联系也是一个关系,
┊ 从而得到关系模型。在模型转换中,最基本的要求是保证每个关系至少有一个码
┊ (Key);关系中每个属性都是不可分的数据项,不允许表中有表;一个关系只是描述
┊ 一个信息实体,或者实体间的一种联系。线 2、规范化
┊ 规范化是数据库逻辑设计的指南和工具,它贯穿数据库设计过程中的数据分析、
┊ 基本E-R图的设计和逻辑设计。特别在逻辑设计中,通过对关系模型 R(A1,A2,,
┊
┊ An)的函数依赖的进行模式分解,使模型达到 BCNF、2NF、或3NF范式,可以消除
┊ 更新异常等,当然有时为了提高查询速度,也可以牺牲规范化程度。
安徽工业大学
毕业设计(论文)说明书
┊
┊
┊
共43
第
PAGE
25
页
页
论坛数据库分别包括10个表,如图3.10所示:
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊装
┊
┊
┊
┊
┊订
┊
┊
┊
┊ 图3.10数据库表信息
┊ 其中bans表记录着用户ID,用户帐号,IP地址,email地址和显示给被封用户线 信息的信息等,主键为id。如图3.11所示:
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊ 图3.11bans表
表categories记录着版块ID,版块名和位置信息,主键为ID。如图3.12所示:
┊
┊ 图3.12 Categories表
┊
┊ 表config记录着论坛配置选项名、配置选项值信息。如图 3.13所示。
┊
┊
┊
┊ 如图3.13 config表
┊ 表forums记录着论坛id号,论坛名,论坛描述,论坛版主,主题总数,最后回
┊ 复时间,最后回复帖子的id,最后回复人的用户名和是否只允许管理员和版主访问等
┊
┊ 信息,其中id为主键。如图3.14所示。
┊装
┊
┊
┊
┊
┊订
┊
┊
┊
┊
┊线
┊
┊ 如图3.14 forums表
┊
┊
┊
┊
┊ 表online记录着用户id,用户名称,用户上次访问的时间信息,主键为 user_id。
┊ 如图3.15所示。
┊
┊
图3.15 online表
┊ 表posts记录着帖子id号,发帖人用户名,发帖人id号,发帖人ip,发帖人email,
┊ 发帖内容,是否转换笑脸符号和发帖时间等信息,主键为 id。如图3.16所示。
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装 图3.16 posts表
┊
┊ 表search_matches描述着匹配所涉及的帖子的id,匹配所涉及到的词和主题匹配
┊ 信息。如图3.17所示。
┊
┊订
┊
┊
┊ 图3.17 search_matches表
┊ 表search_results记录着查询结果id号,查询人用户名和查询数据的连续的 php
┊ 数组信息,主键为id。如图3.18所示。线
┊
┊
┊
┊ 图3.18 表search_results
┊
┊
┊ topics记录着主题帖id号,发主题的用户名,主题题目,发主题的时间,最后回
┊
┊ 复时间,最后回复的id,最后回复的用户名,查看主题的次数,回复的帖数和是否设
┊ 置置顶等信息,主键为id。如图3.19所示。
安徽工业大学
毕业设计(论文)说明书
┊
┊
共43
第
PAGE
27
页
页
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊ 图3.19 topics表
┊
┊
装 表users记录着用户id,用户名,用户密码,用户email,用户等级头衔,真实姓
┊ 名,用户个人网站,用户QQ号码,用户MSN号码,用户个性签名,用户所在时区,
┊ 用户身份等信息,主键为id。如图3.20所示。
┊
┊
┊订
┊
┊
┊
┊
┊线
┊
┊
┊
┊
┊
┊
┊
┊ 图3.20 users表
┊
┊
┊ 上述给出数据库中的表信息,本数据库包含封用户 IP表、类别版块表、默认配
安徽工业大学
毕业设计(论文)说明书
┊
┊
┊
┊
共43
第
PAGE
30
页
页
置表、论坛表、在线用户表、帖子表、查询匹配表、查询结果表、主题表、用户表和数据库中各个表的列属性。
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊装
┊
┊
┊
┊
┊订
┊
┊
┊
┊
┊线
┊
┊
┊
┊
┊
┊
┊
┊
┊
论坛系统详细设计
论坛在Internet上是很常见的,但是要实现一个论坛,工作量很大。论坛系统大致可以分为两个组成部分:面向系统管理者的论坛管理系统和面向一般用户的论坛服务系
┊ 统。无论是管理员方还是用户方都不必安装该系统。 但是,为了解释网页代码中的服
┊ 务器端脚本语言代码,服务器端必须安装相应的 WEB服务器(比如Apache,IIS),
┊ 脚本代码解释引擎(比如Apache)和数据库服务器(如MySQL)。系统管理员通过帐户
┊ 密码验证后登录论坛管理系统,进行相应的后台管理如用户管理、版块管理和文章管
┊
┊ 理。而对于用户,则要先通过注册提出申请,经管理员审核后成为论坛系统的正式用
┊ 户。用户通过帐户密码验证登录论坛服务系统后,能够在论坛内发表文章,回复文章,
┊ 查询文章,浏览文章等。所以,论坛系统应该能够识别四类不同权限级别的用户。第
┊ 一类是新注册用户,尚未通过系统管理员审核,拥有浏览文章,查询个体信息的权限;
┊ 第二类是一般用户,已经通过审核,能够在论坛讨论区发表文章,回复文章,接收信
┊ 件,回复信件;第三类是版主,能够在相应的版块删除文章,封锁 ID限制发文以及
┊
┊ 解除对一般用户的封锁;第四类是系统管理员,拥有最高权限,能够审核新用户注册
装 请求,权限申请并执行相应的裁决。一般网站论坛需要实现的功能包括: 数据库的访
┊ 问,CSS样式表的使用,论坛系统功能的实现,数据的安全性研究与实现4个功能。
┊
┊ 4.1 数据库的访问
┊ 无论是管理者还是用户,在操作论坛系统之前,首先要与数据库建立连接。掌握
┊ 网络数据库编程方法也是该课题的主要目的之一。订
┊ PHP语言提供了大量的数据库操作函数,对 MySQL 进行了很好的支持。对
┊ MySQL的访问,首先通过PHP的函数mysql_pconnect或mysql_connect建立对数据
┊ 库服务器的连接,然后通过 mysql_select_db函数从数据库服务器中选择本论坛系统
┊ 的数据库,如果需要对数据库进行操作,可以用 mysql_query函数向MySQL数据库
┊ 发送SQL语句来实现,然后再通过mysql_fetch_row等函数来取回操作的结果。线 访问论坛系统数据库的功能实现如下:
┊
┊ Connect连接MySQL;验证管理员用户名和密码;if正确do选择数据库。
┊ //不能连接数据库显示错误信息
┊ error('Unabletoselectdatabase.'.mysql_error(), LINE , FILE );}
┊ else
┊ //不能连接数据库服务器显示错误信息
┊ error('UnabletoconnecttoMySQLserver.'.mysql_error(), LINE , FILE );
┊
┊ }
安徽工业大学
毕业设计(论文)说明书
┊
┊
┊
┊
┊
┊
┊
共43
第
PAGE
32
页
页
4.2CSS样式表的使用
通过浏览互联网上的论坛,我们知道基本上所有的论坛系统都提供了很多的风格来实现更好的用户体验,用户可以根据喜好来选择自己喜欢的风格,这些风格的实现是通过CSS样式表来实现的。本论坛系统也提供了这样的功能, 该论坛系统风格的
┊ CSS样式表部分代码如下:
┊ /*设置BODY的背景*/
┊ BODY{background-color:#FFFFFF}
┊ /*设置表格列的文字和颜色属性*/
┊ TD{
┊ font:12pxVerdana,Arial,Helvetica,sans-serif;
┊
┊ color:#333333}
┊ /*设置输入框和复选框的字体和颜色*/
┊ INPUT,SELECT{
┊ font:12pxVerdana,Arial,Helvetica,sans-serif;
┊ color:#333333}
┊ /*设置文本框字体和颜色*/
装
┊ TEXTAREA{
┊ font:12pxVerdana,Arial,Helvetica,sans-serif;
┊ color:#333333}
┊ /*设置表单属性*/
┊ FORM{margin:0}
订
┊ 4.3 论坛系统功能的实现
┊
┊ 4.3.1 系统功能
┊ 1、分论坛显示
┊ 论坛系统版块和子论坛显示关功能如下:
线 对数据表进行操作,使用select分别查询出所有类别版块表catagories和论坛表forums
┊
┊ 中的版块名称和子论坛名称,把类别版块表catagories和论坛表forums进行等值连接,
┊ 使用while语句循环取出版块名和子论坛名,逐一输出版块和子论坛名称;
┊
┊ 论坛系统版块和子论坛显示如图 4.1所示。
┊
┊
┊
┊
┊ 2、主题显示
┊
图4.1论坛系统版块和子论坛显示图
┊ 主题显示主要功能实现如下:
┊ 在主题表topics中查询主题id,使用while循环取出主题表中的主题名
┊ 论坛系统主题显示如图4.2所示。
┊
┊
┊
┊
┊装
┊ 图4.2论坛系统主题显示图
┊
┊
┊ 4.3.2 普通用户功能
┊ 1、登录和退出论坛
订 登录论坛系统关功能实现如下:
┊ 点击登录跳转到login.php登录处理页面,
┊
┊ 输入用户名密码后提交表单数据,对输入的用户名和密码进行去空格和转译操作
┊ 使用unescape将字符进行转义,使用trim对所提交的字符进行去空格处理
┊ 查询user表
线 if有此用户then
┊ do检查密码是否正确;
┊ if密码验证正确,显示登录成功返回主页面
┊ else密码不符合,提示密码错误;
┊
┊ Endif
┊ 系统登录界面如图4.3所示。
安徽工业大学
毕业设计(论文)说明书
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
共43
第
PAGE
34
页
页
┊
┊
┊
┊
┊ 退出论坛系统功能实现:
┊
图4.3系统登录界面
┊ 点击退出登录,从在线用户表中删除,使用WHERE从在线用户表中选取用户,并使
┊ 用DELETE语句删除,then重定向到主页index,php
┊
┊ 2、用户注册
┊ 用户注册包括填写用户名、密码、邮箱。在注册前要检查该用户名是否已经被注
┊ 册。密码插入数据库前要进行加密处理。
┊ 点击注册转到register.php,调用user表,检查提交表单中用户名是否已经存在,如果装
┊ 不存在,将检查2次输入密码是否输入相同,以及检查提交邮箱格式是否正确,将注
┊ 册信息保存至user表中。
┊ 检查用户名是否存在:
┊ If用户名已存在 then
┊ Do返回注册页面重新输入用户名;订 If2次密码输入不一致then
┊
┊ Do返回注册页面重新输入密码;
┊ If 检查邮箱格式不正确then
┊ Do返回注册页面重新输入邮箱;
┊ Else注册成功将数据写入用户表;
线 Endif
┊
┊
┊ 用户注册界面如图4.4所示。
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊ 3、发文功能
┊
图4.4用户注册界面
┊ 根据课题内容参考的要求,发文功能包括发新帖子、回复帖子、修改删除自己发布的
装 帖子。此功能是对论坛系统数据库表进行增、删、改的功能。
┊ 发新帖子功能如下:
┊ 如果是发表新帖子,点击发新主题,生成一个发表新主题的页面,将填写的内容提交,
┊ 分别对topic表和post表操作,使用INSERT语句将新帖数据插入主题表topic,将主
┊ 题帖子id,发帖人,发帖时间,帖子内容等信息 insert进post表,改变主题帖中的最
┊ 后回复last_post_id一项,使用UPDATE更新topic表的属性last_post_id,即最后发订
┊ 表主题名称,update更新用户表users的用户发帖数num_posts,和最后发帖时间
┊ 发表新帖子及回复界面如图4.5、4.6所示。
┊
┊
┊线
┊
┊
┊
安徽工业大学
毕业设计(论文)说明书
┊
┊
共43
第
PAGE
43
页
页
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊装
┊
┊
┊
┊
┊订
┊
┊
┊
┊
┊线
┊
┊
┊
┊
┊
┊ 4、查询功能
图4.5发表新帖子界面
图4.6回复界面
┊ 根据课题内容参考的要求,查询功能可查询注册用户及其对应的帖子。 等值连接posts
┊ 表和user表,查询注册用户可对本论坛系统的 users表进行查询,posts表包括论坛系
┊
┊ 统所有的主题和回复内容。本论坛系统的查询功能可使用泛查找,通配符使用“ *”,
┊ 在对数据库进行查询前要先把“*”号转换成SQL语句中的“%”。连接user表,posts
和topics表,在user表中select该用户名,列出该用户的发帖信息。查询功能界面如图4.7所示。
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装 5、用户控制面板
图4.7查询功能界面
┊ 用户控制面板是用户对个人资料进行添加、修改和删除的地方,可通过对 users
┊ 表的操作来完成此项功能。提交后使用 update语句对user表更新。
┊ 用户控制面板界面如图 4.8所示。
┊
┊订
┊
┊
┊
┊
┊线
┊
┊
┊
┊ 图4.8用户控制面板界面
┊
┊ 4.3.3 版主功能
┊
┊ 1、具有全部普通用户功能
┊ 2、版内文章管理,包括增删改查
┊ 本论坛系统在forums表中设置了moderators字段来记录论坛的版主名,版主登录系
┊ 统后,在进入所管理的论坛前,先对版主身份进行检查,如果身份符合,则可享有和
发帖用户一样的处理帖子的权利。
版主版内文章管理界面如图4.9所示。
┊
┊
┊
┊
┊
┊
┊
┊
┊ 图4.9版主版内文章管理界面
┊
┊ 3、取消或恢复用户在版内的发文权
┊
┊ 取消或恢复用户在版内的发文权是通过在 bans表中增加和删除用户来实现的,以
装 添加禁止用户为例,功能实现如下:
┊ 提交用户名then
┊ Ifselectuser表,有该用户信息then
┊ Doinsert插入bans表;
┊ Else提示没有此用户;
┊
订
┊ 添加禁止用户界面如图4.10所示。
┊
┊
┊
┊
线 图4.10添加禁止用户界面
┊
┊ 4、重要主题前置功能
┊ 主题置顶功能实现如下:
┊ Update更新主题表topics中的sticky一项,设置为1
┊
┊ 重要主题前置功能界面如图4.11所示。
┊
┊
┊
┊
┊
┊
┊
┊ 4.3.4 管理员功能
┊
图4.11重要主题前置功能界面
┊ 1、管理员具有普通用户和版主的所有功能
┊ 2、分论坛管理功能
┊ 此功能是管理员对categories表的操作,比较简单。使用insert语句对categories表插
┊ 入版块表单,或者使用update对已有版块进行更新。
┊ 分论坛管理功能界面如图4.12所示。
┊
┊
┊
┊装
┊
┊
┊
┊
┊订
┊
┊
┊
┊
┊ 图4.12分论坛管理功能界面
线 3、论坛内的文章管理,包括增删改查
┊ 此功能与版主版内文章管理功能类似。对 posts表update或delete操作
┊ 4、论坛用户管理
┊ 根据课题内容参考的要求,论坛用户管理包括增删用户,指定版主等。由于篇幅的限
┊ 制,现对指定版主的主要功能如下:
┊
┊ 如果是指定版主操作
┊ if 用户权限是不是管理员 then
┊ Do没有权限
┊ Elseupdate更新USER表该用户的status字段为1
┊
┊ 指定版主界面如图4.13所示。
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊ 5、查所有人的IP
图4.13指定版主界面
┊ 得到用户ip地址的函数代码如下:装 functionget_remote_address()
┊ {/*$_SERVER["HTTP_X_FORWARDED_FOR"] :PHP定义的超全局变量,可以知道
┊
┊ 代理服务器的服务器名以及端口。 $_SERVER["HTTP_VIA"] 可以知道客户的内部
┊ ip*/
┊ if(isset($_SERVER['HTTP_X_FORWA--*/+*-RDED_FOR'])){// 进行正则表达式匹配订 if(preg_match('/[0-9]{1,3}\.[ -9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/',
┊ $_SERVER['HTTP_X_FORWARDED_FOR'],$addresses))
┊ return$addresses[0];}
┊
┊ /*如果没有地址在HTTP_X_FORWARDED_FOR,尝试HTTP_CLIENT_IP ,如果还没
┊ 有则返回REMOTE_ADDR*/
线 return (isset($_SERVER['HTTP_CLIENT_IP'])) ? $_SERVER['HTTP_CLIENT_IP'] :
┊ $_SERVER['REMOTE_ADDR'];
┊ }
┊
┊ 4.4 数据的安全性研究与实现
┊
┊ 4.4.1 论坛系统的安全体系
┊ 论坛系统存储了大量的敏感数据,它关系到管理员和用户双方的利益。 而且在系
┊ 统运行过程中,论坛管理员和用户的操作都要涉及到这些敏感数据的处理, 因此,该
┊ 系统的安全性要求非常高。数据库安全保密就是保证数据库信息的完整、 可用,并可
┊
┊ 防止非授权用户窃取或篡改数据信息。
为了保证数据库的安全,主要采用了论坛用户的安全管理、身份认证和加密技术等安全机制来实现数据库的安全。
MySQLserver主要完成数据库对象的存储、管理、接收、执行客户机传来的数据、指令,并将其执行结果返回客户机。在实现安全管理中支持多级安全管理机制,即在
┊ 进入系统时,要验证用户名和密码。建立数据库级安全管理,对数据库进行存取时,
┊ 对不同的用户授予不同的权限,以限制不同的用户操作数据库的权限等。
┊
┊ 4.4.2 论坛系统安全性的实现
┊
┊ 1、安全管理
┊ 由于系统用户种类较多,由管理员负责数据库结构的维护、 管理等工作。其他用
┊ 户只能直接使用数据库中的数据,但是不能对数据库结构进行更改。
┊ 2、用户身份认证
┊ 论坛中包含大量的敏感数据,为保证系统数据在存储时和网络传输中不被未经授
┊ 权的用户访问或解读,需用用户名来标明用户身份,经系统鉴别用户的合法性后,再
┊
┊ 利用口令进一步核实用户身份。为保证口令的安全性,在口令提交过程中,不采用明
装 文形式,即:先对口令加密后再传输在数据库中以密文形式存放, 这样就可以保证其
┊ 安全性,使用户和服务器在通信过程中,可以防窃听、防干扰、防消息伪造。
┊ 3、加密技术
┊ 考虑到原始数据以可读的形式存储在数据库中,高明的入侵者可以从计算机系
┊ 统的内存中导出所需要的信息,或者采用某种方式打入系统,从系统的后备存储器上
┊ 窃取数据或篡改数据,这样就无法保护数据的真实性、可靠性。因此,要彻底解决数订
┊ 据库的安全保密,除了在数据的传输过程中采取加密保护和控制非法访问之外, 还必
┊ 须对存储的数据进行加密保护。使得用户在以明文的方式写入数据时,数据库中保存
┊ 的是密文数据;在读出数据时,则先把数据库中的密文转化成对应的明文,然后再进
┊ 行相应的操作。
┊ 4、数据的备份
线 数据备份与恢复是实现信息安全运行的重要技术之一,能保证信息系统因各种
┊
┊ 原因遭到破坏时,能尽快投入使用。任何一个数据库在使用过程中,都可能因各种原
┊ 因而使数据库受到破坏,而导致系统崩溃,这时就需要对数据库进行相应的安全恢复。
┊ 使用MySQL图形管理工具phpMyAdmin可以完成对数据的数据备份与恢复。
┊
┊
┊
┊
┊
┊
┊
论坛系统性能优化
论坛系统测试
在开发论坛系统过程中,需要面对很多复杂的问题,因此,在软件设计的过程不
┊ 可避免产生错误。这里我们要求在每个设计阶段都要经过严格的测试, 尽可能早地发
┊ 现问题并解决。和一般的系统测试一样,论坛系统的测试也要经过单元测试、集成测
┊ 试、系统测试三个阶段。其步骤如下图 5.1图:
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装 图5.1系统测试
┊
┊ 1.单元测试
┊ 单元测试的用例从单元详细设计中导出。在单元测试中可以采用功能性测试和结
┊ 构性测试两种。首先进行功能性测试,对于每一个功能模块通过不断的边界及实例测
┊
订 试进行错误挖掘,以使每个功能模块不断完善。然后进行单独的结构性测试,对于系
┊ 统结构的每一个设计框架有个很好的总结和提炼。
┊ 2.集成测试
┊ 集成测试是指在单元测试的基础上,将所有模块按照设计要求组装成一个完整的
┊ 系统而进行的测试,故也称组装测试或联合测试。集成测试有渐增式和非渐增式测试
┊ 两种方法。渐增式测试是把未经过测试的模块组装到测试过的模块上, 非渐增式测试线
┊ 是对每个模块分别进行测试,然后按要求组装在一起共同测试。
┊ 3.系统测试
┊ 在这个测试步骤中所发现的往往是需求规格说明的错误。 系统测试过程将整个管
┊ 理模块进行整体测试,通过系统测试能够将需求分析时没有考虑到的问题暴露出来,
┊ 以利于设计者对需求规格说明时的错误加以及时改正补充。 一般来说,系统测试是功
┊ 能性测试,而不是结构性测试。
┊ 4.测试过程
┊
┊ 在论坛系统运行时按照需求分析逐项进行测试系统各模块功能。 先通过单元(单
┊ 独模块)测试,再经过集成测试(各模块间联系与交叉测试)和边界数据的测试,最
┊ 后整个系统的完全测试。通过系统的整体测试,及时发现设计过程中的错误和缺陷,
对一般的模块错误进行修改,对结构性方面的问题及时调整。以使整个系统逐步走向规范化。
模板技术在论坛中的应用
┊ 设计一个交互式网站,一定会关注两个主要的问题,就是美工和程序。这也是一
┊ 个网站在建设中抛开其内容之后最关键的要素。通常有两种方式来协调美工和程序之
┊ 间的关系:
┊ 1、先做好美工页面,然后由程序员直接在美工页面的 HTML文件中嵌入ASP、
┊ JSP、PHP等程序代码。
┊
┊ 2、美工和程序同时进行,但这时因为没有页面框架,程序只能做出一些关键代
┊ 码,双方完成后再进行一次美工页面和程序代码的嵌入合成。
┊ 在实际的网站建设过程中,由于人员、进度等环境的限制,大家通常会混合地使
┊ 用上面两种协调方式。然而这两种方法都有不足之处:
┊ 1.效率不高。两者协调不好可能产生等待、重复代码调试步骤等现象;
┊ 2.调试不畅。由于程序代码最终需要嵌入在HTML页面中,代码的嵌入、调试、
┊ 纠错都比较繁琐;装
┊ 3.维护不便。一旦美工设计需要修改,如网站改版,那么所有程序和 HTML代
┊ 码混合页面都需要重写。
┊ PHP的模板技术会比较圆满地解决上述问题。PHP模板即PHPlib的Template技
┊ 术,是PHPLIB程序库中的一个主要模块之一,发展自 Perl的Template。PHPLIB是
┊ 在PHP上的一个扩展,提供了很多类库,能够方便地实现一些基本功能如用户认证、订 数据库封装等。模板技术的核心概念是要将美工页面指定为模板文件, 只需将页面中
┊
┊ 活动的内容如数据库输出、用户交互等部分定义成变量的形式放在模板文件中相应的
┊ 位置,当用户浏览时,由PHP程序文件打开该模板文件,将模板文件中定义的变量
┊ 替换成对应的数据库输出或者用户交互等动态生成内容。
┊ 使用模板技术的两个主要目的是分离和布局。第一个目的是谈论得最多的目的,线 它设想的情形是:一组程序员编写用于生成页面内容的 PHP脚本,同时另一组设计
┊ 人员设计HTML 和图形以控制页面的最终外观。分离功能和布局的基本思想就是使
┊
┊ 得这两组人能够各自编写和使用独立的一组文件:程序员只需关心那些只包含 PHP
┊ 代码的文件,无需关心页面的外观;而页面设计人员可以用自己最熟悉的可视化编辑
┊ 器设计页面布局,无需担心破坏任何嵌入到页面的 PHP代码。
┊ 模板技术很轻松地把网站设计分离成了清晰的美工和程序两个方面, 并把他们的
┊ 成果简单方便地结合了起来。如美工设计需要修改,那么只要记住原模板中的各个变
┊ 量名,把他们插入到新模板中对应位置就可以了。另一方面,在 PHP程序中基本没
┊ 有了PHP脚本和HTML语法混合的现象,很大地提高了PHP系统的执行效率,而且
┊
┊ 如果是数据库等一些费时的操作, 现在可以很及时地关闭数据库,释放资源,这样也
安徽工业大学
毕业设计(论文)说明书
┊
┊
┊
共43
第
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 六年级健康教育 青春期心理健康(一)
- 公文写作规范(2015年8月)
- 金融经验总结
- (道路建筑材料)市政材料课件
- 2024年信阳市息县九年级下学期中考一模历史试卷
- 金融客户经理
- 金融电话销售
- 专家门诊聘用合同
- 艺术沙龙导演聘请协议
- 员工违规行为处罚管理规定
- 2024年度工矿企业设备维修与保养合同3篇
- 食品生产小作坊培训
- 2025年日历表(A4版含农历可编辑)
- 2024秋期国家开放大学《财务报表分析》一平台在线形考(作业一至五)试题及答案
- 期末 (试题) -2024-2025学年人教PEP版英语六年级上册
- 大学生心理健康(贵州大学)智慧树知到期末考试答案章节答案2024年贵州大学
- 《森林病虫害防治》课件
- 英语四线三格线A4纸打印
- 外研版英语六年级上册一起点测试卷及答案
- 部编版小学语文 阅读训练 鲁迅 (含答案)
- 240灯控台_说明书
评论
0/150
提交评论