您好,欢迎来到筏尚旅游网。
搜索
您的当前位置:首页基于WEB的讨论系统_毕业设计

基于WEB的讨论系统_毕业设计

来源:筏尚旅游网


学号: 06034050118 茂 名 学 院

毕业设计说明书

基于WEB的讨论系统

WEB-based Discussion System

学院 电信学院 专业 计算机科学与技术 班级 计算机06-1 学生 指导教师(职称) 完成时间 2010 年 3 月 15 日 至 2010 年 6 月 15 日

茂 名 学 院

专业负责人 批准日期 毕 业 设 计 任 务 书

院(系): 计算机与电子信息学院 专业: 计算机科学与技术 班 级: 计算机06-1班 学生: 学号: 一、毕业论文课题 基于WEB的讨论系统 二、毕业论文工作自 2010 年 3 月 15 日起至 2010 年 6 月 15 日止 三、毕业论文进行地点 计算机专业实验室 四、毕业论文的内容要求

1. 确定调查对象,深入软件使用者进行调查研究,获取第一手资料,采取各种方法查阅搜集资料,并进行整理和分析。

2. 确定论文题目,撰写开题报告,拟定论文撰写的基本内容、撰写安排、重点与难点。

3. 毕业设计(论文)包含题名(标题)、摘要、目次页(目录)、引言(前言)、正文、结论、结束语(谢辞)、参考文献和附录等几部分。

4. 根据开题报告撰写毕业论文,依照论文指导老师的要求不断修改,逐步完善论文的写作。

5. 毕业论文要求立论正确,观点鲜明,论据充分,论证有力,思路清晰,语句简洁流畅,结构完整,并结合实例,形成个人的见解。

指导教师 接受论文任务开始执行日期 2010 年 3 月 15 日

学生签名

摘 要

随着网络技术的迅猛发展,网上交流已不再陌生,它开辟出了一条新的沟通渠道,并被人们逐渐重视。在当今WEB系统开发中,PHP是一种比较流行的语言,是人们经常使用的语言之一。本系统就是通过使用PHP 技术来设计与实现基于WEB的讨论系统,并采用了当今主流技术,即B/S体系结构,它打破了以前传统的C/S开发模式。

本文对B/S模式进行了简要的说明,并概要的介绍了一下PHP,包括他的特点和运行方式,以及PHP开发环境的搭建在文中都有详细的说明。从需求分析、概要设计再到系统设计逐层深入的把本系统进行了分析与研究,详细地讲解了系统的功能,最后还对系统进行了详细的测试。

关键词:讨论系统;B/S;PHP

I

Abstract

With the rapid development of network technology, online communication is no longer strange, it opens up a new communication channel, and is increasingly emphasized by people. Because PHP is a relatively mature language, so that it is one of the frequent used languages in the development of network system. This system designs and implements an e-learning system —teaching forum, through the use of PHP technology and using today's mainstream technology, that is, B/S structure, which breaks the previous traditional C/S development mode.

In this paper, B/S model are briefly described and the outline of PHP, including its characteristics, operational modalities are presented. How to build the PHP development environment is detailed decribed in the text description. From the requirements analysis, the overall program, feasibility analysis, outline design, to the overall design of this system has been analyzed layer by layer deepen. The functions of the system page are explained in detail, and finally the system test, explained slightly

Key words: discussion system; B/S; PHP

II

目 录

摘 要 ........................................................................................................................................ I Abstract .................................................................................................................................... II 第一章 引言 .............................................................................................................................. 5

1.1课题背景 ....................................................................................................................... 5 1.2技术要求 ....................................................................................................................... 5 1.3研究工作 ....................................................................................................................... 5 第二章 需求分析 ...................................................................................................................... 6

2.1可行性分析 ................................................................................................................... 6

2.1.1经济可行性分析 ................................................................................................. 6 2.1.2技术可行性分析 ................................................................................................. 6 2.1.3操作可行性 ......................................................................................................... 6 2.1.4社会可行性 ......................................................................................................... 6 2.2综合需求分析 ............................................................................................................... 6

2.2.1功能需求 ............................................................................................................. 7 2.2.2可靠性需求 ......................................................................................................... 8 2.2.3安全性需求 ......................................................................................................... 8 2.2.4用户需求 ............................................................................................................. 8 2.3业务流程图 ................................................................................................................... 9

2.3.1登录业务流程 ..................................................................................................... 9 2.3.2查看在线用户业务流程 ..................................................................................... 9 2.3.3查看讨论业务流程 ........................................................................................... 11 2.3.4发表讨论业务流程 ........................................................................................... 11

第三章 开发环境和开发工具介绍 ........................................................................................ 12

3.1 PHP概述 ..................................................................................................................... 12 3.2 PHP的特点 ................................................................................................................. 13 3.3 Apache服务器 ............................................................................................................ 14 3.4 MySQL 5.1.30 ............................................................................................................. 15 3.5 Zend Studio ................................................................................................................. 15 3.6 软件开发环境 ............................................................................................................ 16 3.7本章小结 ..................................................................................................................... 17 第四章 概要设计 .................................................................................................................... 18

4.1系统目标 ..................................................................................................................... 18 4.2 基于WEB应用程序结构 ......................................................................................... 18

III

4.2.1表示层 ............................................................................................................... 18 4.2.2业务逻辑层 ....................................................................................................... 19 4.2.3数据层 ............................................................................................................... 19 4.3模块设计 ..................................................................................................................... 19

4.3.1用户模块 ........................................................................................................... 20 4.3.2聊天模块 ........................................................................................................... 20 4.4系统功能结构 ............................................................................................................. 21 4.5数据库设计 ................................................................................................................. 22

4.5.1数据库分析 ....................................................................................................... 22 4.5.2数据库概念设计 ............................................................................................... 22

第五章 详细设计 .................................................................................................................... 26

5.1 Web站点的建立与管理 ............................................................................................. 26

5.1.1 Web服务的配置选项 ....................................................................................... 26 5.1.2创建Web站点 .................................................................................................. 26 5.2数据库连接文件 ......................................................................................................... 26 5.3系统设计 ..................................................................................................................... 27

5.3.1 首页模块设计 .................................................................................................. 27 5.3.2 注册页模块设计 .............................................................................................. 28 5.3.3 对话模块 .......................................................................................................... 30 5.3.4 历史记录模块 .................................................................................................. 33 5.3.5 修改密码模块 .................................................................................................. 38 5.3.6 退出登录模块 .................................................................................................. 39

第六章 系统测试 .................................................................................................................... 40

6.1系统测试说明 ............................................................................................................. 40

6.1.1系统测试简介 ................................................................................................... 40 6.1.2系统测试环境 ................................................................................................... 41 6.2系统测试过程 ............................................................................................................. 41

6.2.1系统测试内容 ................................................................................................... 41 6.2.2系统测试过程 ................................................................................................... 42 6.3测试结论 ..................................................................................................................... 46 结论 .......................................................................................................................................... 47 致谢 .......................................................................................................................................... 48 参考文献 .................................................................................................................................. 49 附录A 用户使用说明书 ........................................................................................................ 50

IV

第一章 引言

第一章 引言

1.1课题背景

随着科学技术的不断发展,在不同地域的成员之间进行讨论变得非常普遍。计算机技术迅速向着网络化、集成化方向发展。而支持网络应用的新一代网络版应用软件正在涌现,目前有一种趋势是浏览器——服务器的B/S结构应用系统,它的特点是在客户端直接采用了功能强大的浏览器软件作为界面,其优点在于软件开发效率高,客户端不受操作平台的、也不受地域的,网络传输量少。基于WEB的讨论系统,正是为了解决和远处的成员共同讨论而开发的软件,提高大家学习的效率,适应现代社会的需要。

1.2技术要求

(1)功能模块划分合理,模块之间依赖性低,扩展性要强; (2)数据库设计要满足功能要求,效率要高; (3)数据库冗余度小,尽量满足三范式要求; (4)实现PHP对MySQL数据库的访问;

(5)采用Ajax技术,能够在不刷新页面的情况下读取对话信息;

(6)程序能够兼容IE、FireFox等主流的浏览器,做到与浏览器的无关性; (7)服务器系统必须运行稳定,网络保持畅通;

1.3研究工作

为了顺利完成基于WEB的讨论系统的设计与实现,在毕业设计期间通过收集资料研究了以下部分:

1.研究参考文献中关于讨论系统的内容; 2.学习PHP相关技术;

3.利用PHP技术和Zend Studio软件设计讨论系统各模块页面; 4.熟悉Apache和PHP的运行机制和配置方法; 5.研究数据库与PHP的连接模块; 6.Ajax的工作机制;

7.讨论系统的总体设计与实现;

8.对基于WEB的讨论系统进行安全性分析。

5

茂名学院本科毕业设计:基于WEB的讨论系统

第二章 需求分析

2.1可行性分析

可行性分析法是对工程项目进行系统技术经济论证,经济合理性综合分析的方法。其目的是通过对技术先进程度,经济合理性和条件可能性的分析论证,选择以最小的人力、物力、财力耗费,取得最佳技术、经济、社会效益的切实方案。它是解决项目投资前期分析的主要手段。本讨论系统的可行性主要从经济可行性、技术可行性、操作可信性和社会可行性分析来考虑。

2.1.1经济可行性分析

在经济上,该项目是可行的。本系统的制作只需安装了PHP、Mysql、Apache,并且可运行在Linux系统上,而这些软件都是免费的,从外界所需的条件来讲成本比较低,开发时无需网络支持,发布时只需要在网上有空间,系统管理员定期对网站进行维护,网站就可以正常运行。

2.1.2技术可行性分析

在技术上,该项目是可行的。本网站系统是采用PHP开发,以异步请求为核心,Mysql为数据库开发,这些软件可方面在Linux上安装和调试,用Zend Studio和Photoshop等网页处理工具,保证网站正常使用的前提下,页面清新淡雅,内容丰富多彩。

2.1.3操作可行性

在操作上,该项目是可行的。未注册用户可在系统上登陆、浏览公共讨论内容;已注册普通用户除了有未注册用户的功能权限外,还可发表讲话、查看历史记录和删除历史记录等功能,在系统里面的操作简单方便。

2.1.4社会可行性

当今社会是一个信息技术的时代,计算机的发展越来越快,同时接触和使用计算机的用户也显著增加,在这样一个时代,计算机信息的需求量是非常大的,因此,该讨论系统能够很好的满足社会的需求。

2.2综合需求分析

软件需求分析是软件设计的基础。它采用一系列行之有效的技术、方法和工具来分析用户需求,通过特定的形式系统地描述拟开发软件的功能、性能,以及行为特征和相关约束,定义所有内外部特征,最后形成既能指导软件设计、又能同用户沟通的软件需求规

6

第二章 需求分析 格说明。它覆盖了软件设计之前的各项活动。

需求分析还是一个项目提出方和承担方相互沟通的过程,一方是系统的使用者,一方是系统的制造者,在系统涉及过程中,只有双方相互配合,共同对系统进行设计才能最后达到使用的要求。用户是业务上的熟悉者,对业务流程有非常清晰的了解,但是,对于软件需求方面的描述是不了解的,他们所能提供的只是他们最终要达到的功能,但是,这其中包含的业务流程是非常复杂的。我们拿到用户需求后,应该根据功能、流程进行初步的设计,构造出业务流程图,再让用户进行评审,提出业务流程上不对的地方进行修改。这样来回的交流,最终才能取得较全面的需求,并减少后期的修改。

2.2.1功能需求

通过对本系统的使用场景模拟和用户调研,本讨论系统需要实现以下功能: (1) 免安装客户端

用户在不用额外安装客户端的情况下能够使用本系统,简化用户使用本系统的操作,方便用户第一次使用本系统,能吸引更多的新用户使用。 (2) 游客身份登陆

用户第一次接触本系统时,有很多会抱着试一试的心态进来的,如果在一开始就让用户注册等操作,部分用户会觉得太麻烦而放弃使用。如果一开始让用户可以以匿名方式登陆,能够看公共聊天的内容但要注册后才能发表讲话,这样才能吸引用户进行注册。 (3) 用户注册

注册过程尽量简化,系统对用户操作本着友好的宗旨。用户注册之后,能够使用本网站的所有功能。 (4) 用户登录

用户可以通过本功能登录系统。若用户未登录时进入本系统,自动提示用户进行登录。第一次注册用户可以实现自动登陆系统。 (5) 查看在线用户

用户登陆之后,能够在界面查看参与讨论的用户有哪些,并能显示在线人数。 (6) 选择对话用户

进入系统后,默认是公共聊天模式,发表讲话所有用户能接收到;用户在在线列表里面单击某个用户,可以切换为私聊模式,在对话框提示只和该用户对话,发送的对话只有该用户才能接收到,对其他用户透明。此外,在线列表还有一个所有人的选项,用户单击该选项可以恢复公共聊天模式。 (7) 发表讲话

发表讲话时,用户可以选择字体的大小和颜色,方便区分和其他用户的消息;此外,字数限定在一定范围内,防止用户发送字数过多的评论,影响其他用户使用;发送频率也要控制,对间隔太短的消息进行屏蔽,防止用户恶意刷屏,保证系统的稳定运行。

7

茂名学院本科毕业设计:基于WEB的讨论系统 (8) 查看历史记录

用户登录之后,在聊天界面显示查看历史记录的链接,点击之后能查看以前讲话的记录。

(9) 删除历史记录

用户登录之后,能删除自己不想保存的聊天记录,并且删除记录后,在对方聊天记录同步删除,保持用户之间数据一致。 (10) 用户管理

在聊天界面显示修改密码和退出登录链接。修改密码可以对自己的密码进行修改,但必须输入原来的密码,新密码要输入两次进行确认;退出登录可以安全退出系统,防止用户离开后被其他用户使用并窃取聊天内容。

2.2.2可靠性需求

硬件可靠性:包括服务器硬盘、CPU、网络环境的运行可靠性等,保证这些硬件介质正常可靠运行。

软件可靠性:要求软件在承载一定用户在线等复杂的条件下也能稳定运行,不会产生异常情况。

2.2.3安全性需求

1.运行系统的安全:保证信息处理和传输系统的安全,简称“系统安全”。系统安全主要包括计算机系统机房环境的保护,计算机网络拓扑结构设计的安全性考虑,硬件系统的可靠安全运行,计算机操作系统和应用软件的安全,数据库系统的安全等,本质上是保护系统的合法操作和正常运行。

2.信息传播的安全:信息传播结果的安全,它侧重于防止和控制非法的、有害的信息进行传播,避免对互联网上大量自由传输的信息失控,本质上主要是维护社会的道德、法则和国家利益。

3.信息内容的安全:网络上信息内容的安全,即狭义的“信息安全”,包括用户身份认证(一般采用口令鉴别)、用户存取信息的权限控制、数据库记录访问权限、安全审计(一般系统都有日志记载)、计算机病毒防治、数据加密等内容。

4.网络安全:运行系统的安全、信息传播的安全和信息内容的安全的集合体。

2.2.4用户需求

(1)实现讨论系统基本功能,能接收各个用户的言论,按照各自的聊天对象发送到相应的用户机浏览器上,在用户浏览器上既能输入自己的发言内容又能看到他人与自己的对话内容,能与所喜欢的用户进行私聊,开设自己单独的聊天包房; (2)拥有讯息区,显示聊友对话内容的区域,方便聊友观看和个人有关的对话; (3)拥有在线名单区,显示在线聊友,聊友昵称等简单信息;

8

第二章 需求分析 (4)拥有发言区,让聊友能够让按照个性化的风格来发表自己的观点,并提供让聊友选择聊天对象,私聊等功能。

2.3业务流程图

业务流程图(Transaction Flow Diagram,简称TFD),就是用一些规定的符号及连接来表示某个具体的业务处理过程。在对系统的组织结构和功能进行分析时,需从一个实际业务流程的角度将系统调查中有关该业务流程的资料都串起来作进一步的分析。业务流程分析可以帮助我们了解该业务的具体处理过程,发现和处理系统的调查工作中的错误和疏漏。

由于篇幅有限,并非所有的业务流程都会一一介绍,下面将会列出核心部分的业务流程图和相关介绍。

2.3.1登录业务流程

登录时,系统分为普通登录和游客登录两部分。其业务流程如图2.1所示:

用户 以游客方式登录 N Y 是否已注册用户 N 普通登录 注册 Y 游客登录 图2.1 登录业务流程图

2.3.2查看在线用户业务流程

登录后,普通用户和游客都能查看在线用户。用户会发送请求,先从数据库读取用户数据,然后由程序程序生成在线用户列表,如果在线列表有更新,则会更新到用户屏幕上,以上过程会反复执行,直到用户退出登录,流程才会停止。其业务流程如图2.2所示:

9

茂名学院本科毕业设计:基于WEB的讨论系统 开始 读取用户数据 生成在线列表 有更新 Y 更新在线列表 N 退出 Y 结束 N 图2.2 查看在线用户业务流程图

开始 读取对话 有更新 Y 更新到屏幕 N 退出 Y 结束 N 图2.3 查看讨论业务流程图

10

第二章 需求分析 2.3.3查看讨论业务流程

登录后,普通用户和游客都能查看其他用户的讨论内容。首先由用户发送请求,从数据库读取讨论数据,如果讨论内容有更新,则会更新到用户屏幕上,以上过程会反复执行,直到用户退出登录,流程才会停止。其业务流程如图2.3所示:

2.3.4发表讨论业务流程

登录后,只有普通用户能表讨论,游客不能发表。用户编写好内容后,发送请求到服务器,由服务器脚本把用户编写的讨论内容插入到数据库。其业务流程如图2.4所示:

开始 编写内容 发送至服务器 Y 插入数据库结束 图2.4 查看讨论业务流程图

11

茂名学院本科毕业设计:基于WEB的讨论系统

第三章 开发环境和开发工具介绍

基于WEB的讨论系统,基于目前非常流行的WEB2.0技术。本系统设计为B/S结构的应用系统。服务器端的WEB服务器采用Apache,客户端用PHP作为前端开发工具,后台采用MySQL 5.1.30的数据库。系统运行环境为Windows XP 或 Linux。

服务器端采用目前流行的服务器端脚本语言——PHP,其优势在于其是基于WEB的开发工具,方便的程序跟踪和调试环境,有众多的扩展类库,安全性高,运行稳定,语法简单易学易用等,还有一大特点就是免费,是进行快速、高效开发的理想选择。

3.1 PHP概述

PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。它可以比 CGI 或者 Perl 更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。PHP具有非常强大的功能,所有的CGI的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。

PHP 最初是1994年Rasmus Lerdorf创建的,刚刚开始只是一个简单的用Perl语言编写的程序,用来统计他自己网站的访问者。后来又用C语言重新编写,包括可以访问数据库。在1995年以Personal Home Page Tools (PHP Tools) 开始对外发表第一个版本,Lerdorf写了一些介绍此程序的文档,并且发布了PHP1.0。在这早期的版本中,提供了访客留言本、访客计数器等简单的功能。以后越来越多的网站使用了PHP,并且强烈要求增加一些特性,比如循环语句和数组变量等等,在新的成员加入开发行列之后,在1995年中,PHP2.0发布了。第二版定名为PHP/FI(Form Interpreter)。PHP/FI加入了对mySQL的支持,从此建立了PHP在动态网页开发上的地位。到了1996年底,有15000个网站使用 PHP/FI;时间到了1997年中,使用PHP/FI的网站数字超过五万个。而在1997年中,开始了第三版的开发计划,开发小组加入了 Zeev Suraski 及 Andi Gutmans,而第三版就定名为PHP3。2000年,PHP4.0又问世了,其中增加了许多新的特性。

PHP 原本的简称为 Personal Home Page,是Rasmus Lerdorf 为了要维护个人网页,而用c语言开发的一些CGI工具程序集,来取代原先使用的 Perl 程序。最初这些工具程序用来显示 Rasmus Lerdorf 的个人履历,以及统计网页流量。他将这些程序和一些表单直译器整合起来,称为 PHP/FI。PHP/FI 可以和数据库连接,产生简单的动态网页程序。Rasmus Lerdorf 在1995年6月8日将 PHP/FI 公开释出,希望可以透过社群来

12

第三章 开发环境和开发工具介绍 加速程序开发与寻找错误。这个释出的版本命名为 PHP 2,已经有今日 PHP 的一些雏型,像是类似 Perl 的变量命名方式、表单处理功能、以及嵌入到 HTML 中执行的能力。程序语法上也类似 Perl,有较多的,不过更简单、更有弹性。

在1997年,任职于 Technion IIT 公司的两个以色列程序设计师:Zeev Suraski 和 Andi Gutmans,重写了 PHP 的剖析器,成为 PHP 3 的基础,而 PHP 也在这个时候改称为PHP: Hypertext Preprocessor.[5]。经过几个月测试,开发团队在1997年11月释出了 PHP/FI 2,随后就开始 PHP 3 的开放测试,最后在1998年6月正式释出 PHP 3。Zeev Suraski 和 Andi Gutmans 在 PHP 3 释出后开始改写 PHP 的核心,这个在1999年释出的剖析器称为 Zend Engine[7],他们也在以色列的 Ramat Gan 成立了 Zend Technologies 来管理 PHP 的开发。

在2000年5月22日,以Zend Engine 1.0为基础的PHP 4正式释出,2004年7月13日则释出了PHP 5,PHP 5则使用了第二代的Zend Engine[5]。PHP包含了许多新特色,像是强化的面向对象功能、引入PDO(PHP Data Objects,一个存取数据库的延伸函数库)、以及许多效能上的增强。目前PHP 4已经不会继续更新,以鼓励用户转移到PHP 5。

2008年PHP 5成为了PHP唯一的有在开发的PHP版本。将来的PHP 5.3将会加入Late static binding和一些其他的功能强化。PHP 6 的开发也正在进行中,主要的改进有移除register_globals、magic quotes 和 Safe mode的功能。

今天,已经有包括百度和雅虎等在内的数千万大型网站,以及众多的开发人员和编程爱好者正在使用PHP。从最初的PHP/FI到现在的PHP5,PHP的发展是及其迅猛的,其未来的发展前景也必定令人瞩目。

3.2 PHP的特点

PHP有着简单易用和功能强大的特点,这完全要归功于其开放的模块化设计。在基于Zend引擎的支持和优化下,各种各样的扩展模块,其功能已经覆盖几乎所有的Web应用。

1、开放性源代码

PHP[4]的原始码完全公开,在Open Source意识抬头的今天,它更是这方面的中流砥柱。新函数库的不断加入,强大的更新活力,使得PHP无论在UNIX还是Win32的平台上都可以有更多新的功能。它提供丰富的函数式,使其在程序设计方面有着更好的支援,比传统CGI或者ASP等程序更好,而且还有更强的新功能、更丰富的函数库。

2、基于服务器端

由于PHP是在Web服务器端运行的,所以即使PHP程序很大、很复杂,也不会降低客户端的运行速度。这意味着它同ASP一样,不会占用太多的客户端资源,同时

13

茂名学院本科毕业设计:基于WEB的讨论系统 相对于ActiveX、VBScript或JavaScript等运行在客户端的语言工具,也具有较好的安全性。而且这些语言可以很好地结合起来,用PHP可以方便地激活ActiveX控件,也可以动态地生成Script语句。

3、跨平台

PHP程序可以在UNIX、Linux、Windows和Macintosh等操作系统下运行。同时PHP可以在Apache、IIS或ISAPI服务器上运行,并且不经改变就可在服务器平台间移植。这一点很重要,也是它流行的一个重要原因。NASPI一定要在Netscape的服务器(如NETSCAPE ENTERPRISE SERVER或FAST TRACK SERVER)上才可以运行,而ASP及ISAPI只在IIS上才有良好的性能。

4、简单的语言

PHP和Java、Perl以及C++不同,它以基本语言为基础,但其功能却强大到足以支持任何类型的Web站点。Java、Perl以及C++虽然也可以驱动Web应用程序,但它们和Web的通信不如PHP和ASP方便,语言也不够简练。PHP吸取了C语言的精华,对于有Perl和C语言编程经验的人来说,学习PHP是一件很容易的事情。因为PHP语言可以嵌入到HTML内部,这使得它的编程很灵活。

5、高效率

和其他的解释性语言相比,PHP系统消耗的系统资源较少。当用户使用的是Apache服务器,并把PHP作为Apache Web服务器的一部分时,运行代码不需要调用外部二进制程序,服务器解释脚本也不需要承担任何额外负担,这使得PHP速度很快。用户可以组建一个可以读取XML信息的PHP版本。

6、图象处理

PHP并非只限于创建HTML文件,还可以使用PHP动态地创建图像,甚至可以使用更方便的GIF数据流。大多数图象函数都是在GD库中完成它们的功能的,GD库实际上是处理GIF图像的免费软件,它可以通过PHP2.INI获得DL函数来加载。但getimagesize函数是唯一的例外,因为它总是有效的,因此需要使用GD库中的图象函数来编译PHP。需要说明的是,所有生成GIF图像的函数均要求GD扩展。这些函数用来处理在Web中最为流行的GIF格式的图形图像。在利用这些函数生成图像时,不能简单地决定在输出HTML脚本中间输出一个图像,而必须由一个IMG标记引出一个单独的脚本来发送一个内容类型的头。

3.3 Apache服务器

Apache服务器是运行PHP程序最好的服务器系统,通常情况下Apache都是运行于Linux操作系统上的,但Apache也可以用于Windows版。本系统就是在WindowsXP下来搭建服务器环境,采用最新的Apache 2.2.11版本服务器。

14

第三章 开发环境和开发工具介绍 Apache的特性简述如下:

1) 几乎可以运行在所有的计算机平台上。 2) 支持最新的HTTP/1.1协议。

3) 简单而且强有力的基于文件的配置(HTTPD.CONF) 。 4) 支持通用网关接口(CGI) 。 5) 支持虚拟主机。 6) 支持HTTP认证。 7) 集成PERL。 8) 集成的代理服务器。

9) 可以通过WEB浏览器监视服务器的状态, 可以自定义日志。 10) 支持服务器端包含命令(SSI) 。 11) 支持安全SOCKET层(SSL) 。 12) 具有用户会话过程的跟踪能力。 13) 支持FASTCGI 。 14) 支持JAVA SERVLETS。

3.4 MySQL 5.1.30

MySQL是一个多用户、多线程的SQL数据库,是一个客户机/服务器结构大应用,它由一个服务器守护程序mysqld和很多不同的客户程序及库组成。它是目前市场上运行最快的SQL(Structured Query Language,结构化查询语言)数据库之一。它提供了其他数据库少有的编程工具,而且MySQL对于商业和个人用户是免费的。在本系统中,使用相对MySQL 5.1.30版本。

MySQL5的功能特点如下:

1) 可以同时处理几乎不限数量的用户; 2) 处理多达50 000 000条以上的记录; 3) 命令执行速度快;

4) 具有简单有效的用户特权系统。

3.5 Zend Studio

一个屡获大奖的专业 PHP 集成开发环境,具备功能强大的专业编辑工具和调试工具,支持PHP语法加亮显示,支持语法自动填充功能,支持书签功能,支持语法自动缩排和代码复制功能,内置一个强大的PHP代码调试工具,支持本地和远程两种调试模式,支持多种高级调试功能。如图3.1所示

15

茂名学院本科毕业设计:基于WEB的讨论系统

图3.1

3.6 软件开发环境

在开发基于WEB的讨论系统时,该项目使用的软件开发环境如下: 1. 服务器端

操作系统:Windows XP 服务器:Apache 2.2.11 PHP软件:PHP 5 数据库:MySQL 5.1.30

MySQL 图形化管理软件:phpMyadmin 开发工具:Zend Studio 浏览器:IE 6.0及以上版本 分辨率:最佳效果1024768像素 2. 客户端:

操作系统:Windows XP 浏览器:IE 6.0及以上版本 分辨率:最佳效果1024768像素

16

第三章 开发环境和开发工具介绍

3.7本章小结

本章主要讲述了基于WEB的系统的开发所用到的相关技术的简要介绍。本系统主要是使用PHP技术来进行开发,使用Zend Studio作为系统界面的开发软件,使用Apache作为系统的服务器,使用MySQL 5.1.30作为存储系统数据的数据库。

17

茂名学院本科毕业设计:基于WEB的讨论系统

第四章 概要设计

4.1系统目标

21世纪是网络的时代,Internet的普及已经影响了传统的交流方式。讨论系统是计算机网络发展的产物,是最为常见、最受广大互联网使用者所认可的基于Web的网络应用系统。随着互联网的发展,人们通过网络可以更方便快捷地进行信息交流和学习,讨论系统可以为大家提供一个更好的交流平台,在这个平台上,人们可以通过文字与符号进行实时的交谈、聊天,它是一个向整个因特网开放的地方,是提供给网民一个学习与娱乐的场所,在讨论系统里大家可选择自已的聊天对象,与其进行对话交流,是成员之间相互沟通、交流情感的最佳方式之一。

从传播方式上讲, 讨论系统传播是非线性传播。非线形传播指讨论系统传播的信息是为无数的共享空间的网络用户所发出的, 任何拥有网络传播权利的人都可以得到, 网络打破了传统媒体单向传送信息的格局, 信息传播者与接收者之间的互动变得切实可行。从传播流量上看, 讨论系统传播具有传统媒体前所未有的兼容性。从传播的信息内涵上讲, 讨论系统的消息结构是无中心的。讨论系统所给受众带来的信息与感受作为一种现代生活资源, 在实现了从传统大众传播的单向传播向多向传播的转变后, 极大地拓展了现代生活空间, 使传播者与受众之间的直接连通成为可能。这一转变使整个传播结构与传播效果发生了巨大变化, 是传统媒体无法比拟的。

课题的最终目标是开发一个小型、快速的在线讨论系统。为广大用户提供一个简明友好快速便捷的交流平台。用户可以快速地进行新用户的注册,无须安装,直接通过浏览器进行在线交流,本讨论系统运行环境要求较低。用户在系统里可以畅所欲言、所发表的信息即时显示在浏览器上。

4.2 基于WEB应用程序结构

基于WEB结构,即B/S结构模型把传统C/S结构模型的服务器端进一步深化,分解为一个应用服务器(Web服务器)和一个或多个数据库服务器,用浏览器(Browser)作为客户端,从而形成三层或多层模型。B/S 结构分为表示层、业务逻辑层和数据层。

4.2.1表示层

表示层主要负责人机交互,其功能是为用户提供一个浏览文档的可视化窗口,用户通过浏览器,向Web服务器发送请求,处理应用系统界面的输出,是实现用户与应用逻辑处理结果的交互界面。

18

第四章 概要设计 4.2.2业务逻辑层

业务逻辑层是教学论坛核心逻辑的应用主体。它主要是处理表示层传递过来的用户响应,并将结果返回给表示层。业务逻辑层中包含了各种业务逻辑模块以及对这些模块管理、调度整个系统的各个模块的业务逻辑功能都在这一层实现 。这一层主要由各种业务组件和不同层次的JavaBeans组成, 并对应用逻辑进行集中管理。

4.2.3数据层

数据层主要提供数据管理, 对数据库进行读写,能够执行大量的数据更新和检索, 完成数据存储,如图1所示。

图4.1 数据层图示

例如:用户通过浏览器访问Web服务器中的教学论坛主页面进行登录,系统验证用户身份后,根据用户操作权限进行操作页面,用户利用操作页面输入各种操作命令(如查询、浏览等),命令和数据经Web服务器访问数据库服务器上相关数据后,由数据库服务器将处理结果返回给Web服务器,Web服务器再将处理结果生成HTML页面返回到客户端浏览器。

4.3模块设计

欢迎界面 用户模块 聊天模块 图4.2 网站模块分析

网站总体分为三大模块,分别是:欢迎界面、用户模块、聊天模块。其中欢迎模块就是开始的欢迎页面,是全网站的首页,也是带领用户进入本网站的向导,其中包含进

19

茂名学院本科毕业设计:基于WEB的讨论系统 入登录界面和进入注册界面两个功能。

4.3.1用户模块

用户模块 用户注册 用户登录 修改密码 退出登录 图4.3 用户模块分析

用户模块主要包括用户注册、用户登录、修改密码和退出登录几个单元。用户的登录可以使用已经注册的注册用户身份登录,也可以使用游客身份进行登录。使用游客身份登录的话是不需要注册的,但同时也不能发言,只能查看其他用户发言,可以弥补这个的就是使用注册用户身份了,那样便可以有一个固定的称呼,可以更好的与聊友们交流,不过这样的话就需要用户进行注册了。用户的注册单元是常规的注册,主要包含用户名、密码。注册的成功与否会有相应的提示。

已注册用户的登录实现主要通过将用户的提交用户名与数据库中的对比,查找是否有该用户名,使用动态select选取SQL语句。如果数据库内没有该用户名,则该用户显然尚未注册,反馈相应信息;如果有该用户名则继续对应用户提交的密码与数据库内该用户名项的密码相对比,一样则允许用户登录,并将页面转到聊天界面,否则提示相应错误信息。

修改密码和退出登录容易理解。修改密码是指用户更改自己正在使用的密码,修改的时候必须输入旧密码以确认用户身份;退出登录指退出当前会话,注销当前SESSION,防止其他用户非法进入。

4.3.2聊天模块

聊天模块 用户列表单元 输入单元 输出单元 历史记录单元 图4.4 聊天模块分析

20

第四章 概要设计 聊天页面由四个单元组成,如上图所示,分别为用户列表单元、输入单元、输出单元和历史记录单元。

用户列表单元为显示当前在线用户的用户名的地方,位于聊天页面的右边,并将各个在线用户的用户名以超级链接的方式显示出来,供当前使用者点击并自动获得下一个说话对象,页面使用了自动刷新方法,刷新时间为2秒,从而保证了列表中的总能保持着较为新的当前用户名列表。

输入单元是用户进行聊天的主要单元,用户的发言、聊天对象、表情用语、是否私聊、是否退出私聊或者是退出讨论系统,都是通过输入区实现的。这里是用户的操作界面。聊天对象的文本框是一个动态文本框,当用户点击左边的用户列表中的用户名的超链接时实现两个人之间的私聊

输出单元是用户的发言区,所有的谈话都将在这里得到显示,无论是公告、对所有人的聊天或者是私聊的话语。信息的得到是通过输入区获得,或系统自动生成的。用户的输出语言因用户的发言方式,如私聊或悄悄话等而不同,文字的颜色也是用户自己所选择。输出单元的文字条数在多于输出页面大小的时候会自动产生滚动条并滚动,以保持最新的聊天内容在输出单元显示。

历史记录单元让用户登录能查看以前讲话的记录,方便上次对话的主题,以便更好的进行本次对话;并能删除自己不想保存的聊天记录,并且删除记录后,在对方聊天记录同步删除,保持用户之间数据一致

4.4系统功能结构

基于WEB的讨论系统的功能结构图如图4.5所示。

讨论系统 用户登录 用户注册 查看在线用户 选择对话用户 发表讲话 查看历史记录 删除历史记录 修改密码 退出登录 图4.5 系统功能结构图

21

茂名学院本科毕业设计:基于WEB的讨论系统

表4.1 系统功能描述

功能名称 用户登陆 用户注册 查看在线用户 发表讲话 查看历史记录 删除历史记录 修改密码 退出系统

功能描述 保证合法用户通过身份验证 成为本系统的用户 查看当前在线情况 发送对话给对方 可以查看以前的对话记录 可以删除以前的对话记录 可以修改自己的登陆密码 安全退出当前会话 输入内容 用户名,密码 用户名,密码 无 对话内容 无 要删除的记录 旧密码,新密码 无 输出内容 用户登陆状态 用户是否注册成功 在线用户列表 对话内容 历史对话内容 删除是否成功 修改密码是否成功 返回欢迎页面 4.5数据库设计

4.5.1数据库分析

数据库的设计通常是以一个已经存在的数据库管理系统为基础的,常用的数据库管理系统有MySQL、 Server、 Oracle、Access等。本系统采用了MySQL数据库,phpMyAdmin为MySQL数据库提供了图形化界面。

4.5.2数据库概念设计

根据以上各节对系统所做的需求分析、系统设计,规划出点本系统的实体关系E-R图。实体关系E-R图是用来描述实体之间关系的图表,构成E-R图的基本要素是实体型、属性和联系。

本系统中使用的数据库实体分别为用户信息实体和对话信息实体。现介绍其实体的E-R图。

1. 用户信息实体

商品信息实体包括用户名、加密密码、在线验证时间、最后登录时间、最后对话时间等属性。商品信息的实体图如图4.6所示。

22

第四章 概要设计

加密后的密码 用户名 用户信息 在线验证时间 最后对话时间 最后登录时间

图4.6 用户信息实体图

2. 对话信息实体

商品订单实体包括对话ID,对话时间,对话内容,发送方,接收方等属性。商品订单的实体图如图4.7所示。

对话ID 接收方 对话信息 对话时间 发送方 对话内容

图4.7 商品订单实体图

23

茂名学院本科毕业设计:基于WEB的讨论系统

4.5.3创建数据库及数据表

1. 在phpMyAdmin的主界面中创建数据库,创建一个名称为chat的数据库。具体如下图4.8所示。

图4.8 创建数据库

2. 结合实际情况及对用户需求的分析,讨论系统数据库主要包含如下数据表。 (1) user(用户信息表)

用户信息表主要用于存储用户的信息。该数据表结构如表4.2所示。

表4.2用户信息表

username psw login_time login_t last_talk varchar(32) varchar(32) varchar(19) varchar(19) varchar(19) 用户名 md5加密后的密码 在线验证时间 最后登录时间 最后对话时间 (2) chat_mess(对话信息表)

用户订单表主要用于存储用户的订单信息。该数据表结构如表4.3所示。

表4.3对话信息表 id time content user_from user_to int(10) varchar(19) varchar(225) varchar(32) varchar(32) 对话ID 对话时间 对话内容 发送方 接收方 3. 生成表的SQL语句,如图4.9所示。

24

第四章 概要设计

图4.9生成表的SQL语句

25

茂名学院本科毕业设计:基于WEB的讨论系统

第五章 详细设计

5.1 Web站点的建立与管理

5.1.1 Web服务的配置选项

安装服务器和数据库:

为了方便,本系统安装“WampServer2.0i” 集成软件,即三合一软件(Windows平台下PHP语言、Apach服务器和MYSQL数据库)和Zend Studio网站构建软件,这样可以省略很多复杂的系统配置。

在安装“WampServer2.0i”软件的时候,默认目录为:D:\\wamp\\。系统默认配置如下:

服务器名称:localhost 数据库名称:root 数据库密码:(空)

5.1.2创建Web站点

在目录“D:\\wamp\\www\\”下创建网站站点PHP,作为该系统的站点。 运行Apach服务器和MYSQL服务器,开始建立网站主页index.php。

5.2数据库连接文件

由于基本上所有的页面都需要进行数据库连接,为了节省篇幅,把与数据库连接的代码另存为一个单独的文件并命名为conn.php,需要时在其他的所有文件前用“include”调用即可, 数据为连接文件connt.php代码如下:

26

第五章 详细设计

5.3系统设计

5.3.1 首页模块设计

本系统的主界面为index.php,如图5.1所示 ,它的功能是引导未注册用户进行注册,已注册用户进行登录。

图5.1 系统主界面

登录模块核心代码: $username=trim($_POST['username']); $p=$_POST['psw']; $psw=md5($p); $day=date(\"Y-m-d H:i:s\",gmmktime()+(60*60*8));//得到当前时间 $sql=sprintf(\"select * from user where username='%s' and psw='%s'\", $username,$psw); $Result=mysql_query($sql,$conn) or die(mysql_error()); $row=mysql_num_rows($Result); 验证用户登录信息

27

茂名学院本科毕业设计:基于WEB的讨论系统 $sql=sprintf(\"insert into chat_mess (time,content,user_from,user_to) values ('%s','%s','1','1')\",$day,$message); mysql_query($sql,$conn); $_SESSION['username']=$username; $_SESSION['login_t']=$day; echo \"\"; 登入系统,并跳转到首页

5.3.2 注册页模块设计

本模块的主要功能是引导用户进行注册,注册需要输入用户昵称和密码,昵称2~32位字符,且不能输入\"<\"、\"\\\"和空格,注册前还可以点击昵称验证确保昵称没有被注册过,防止用户注册不成功而进行无效的操作;密码6~32位字符,不能有空格,且需要重复输入一次进行确认,两次输入一致才能注册成功。如图5.2所示:

图5.2 用户注册页面

注册模块核心代码:

28

第五章 详细设计 $username=(!get_magic_quotes_gpc())?addslashes($_POST['username']): $_POST['username']; $psw=(!get_magic_quotes_gpc())?addslashes($_POST['psw']): $_POST['psw']; $pswcheck=(!get_magic_quotes_gpc())?addslashes($_POST['pswcheck']): $_POST['pswcheck']; //后台验证 if(strlen($username)>||strlen($username)<2||$username==\"\") //验证昵称长度是否>=3,<=32 { echo \"对不起,您输入的昵称长度小于3或者大于32或为空! \"; exit; } if(preg_match('/\\s/', $username)) { echo \"对不起,您输入的昵称不能有空格\"; exit; } if(strlen($psw)<6||strlen($psw)>||$psw==\"\") //验证密码长度是否为6~32之间 { echo \"对不起,您输入的密码长度不合要求或输入为空\"; exit; } if(preg_match('/\\s/', $psw)) { echo \"对不起,您输入的密码称不能有空格! \"; exit; } if($psw!=$pswcheck) { echo \"对不起,您输入的密码不一致! \"; exit; } 验证用户数据

$psw=md5($psw); $day = date(\"Y-m-d H:i:s\",gmmktime()+(60*60*8));//得到当前时间 $insertSQL=sprintf(\"INSERT INTO user(username,psw,login_t) VALUES('%s','%s','%s')\",29

茂名学院本科毕业设计:基于WEB的讨论系统 $username,$psw,$day); $Result1=mysql_query($insertSQL,$conn) or die(mysql_error()); 插入用户表

5.3.3 对话模块

本模块的主要功能是查看在线用户并且和其他成员进行对话,可以选择和所有人对话或者和指定成员进行对话。如图5.3所示

图5.3 系统对话页面

对话模块核心代码: $sql=sprintf(\"select * from chat_mess where time>='%s' and (user_from ='%s'or user_to='%s' or user_to=\\\"所有人\\\" or user_from='1') order by id desc limit 0,30\", $time, $username, $username); $lines=mysql_query($sql,$conn); $rows=mysql_num_rows($lines); 取出对话数据

30

第五章 详细设计 function createAJAX() {//创建XMLHttp对象 if (window.XMLHttpRequest) { var oHttp = new XMLHttpRequest(); return oHttp; } else if (window.ActiveXObject) { var versions = [ \"MSXML2.XmlHttp.6.0\", \"MSXML2.XmlHttp.3.0\" ]; for (var i = 0; i < versions.length; i++) { try { var oHttp = new ActiveXObject(versions[i]); return oHttp; } catch (error) {} } } throw new Error(\"Your browser doesn't support XMLHttpRequest\"); } Javascript 创建异步请求对象的代码

var load_word_ajax; function load_word() { load_word_ajax = createAJAX(); load_word_ajax.open('POST','', true); load_word_ajax.onreadystatechange = load_word_change; var urlstring = ''; urlstring+= \"action=read\"; urlstring+= \"&username=\"+encode(getId(\"chat_user\").value); load_word_ajax.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\"); load_word_ajax.send(urlstring); } Javascript发送异步请求的代码

31

茂名学院本科毕业设计:基于WEB的讨论系统 function load_word_change() {//下载完成后的处理函数 if (load_word_ajax.readyState == 4) { if (load_word_ajax.status != 200) { load_word_error(); return; } if((load_word_ajax.responseText.indexOf(\"dele\"))!=-1) { alert('您已经被删除了!'); window.location.href=\"../index.php\"; } if((load_word_ajax.responseText.indexOf(\"quited\"))!=-1) { alert(\"您已经离开了讨论系统!\"); window.location.href=\"../index.php\"; } else {//alert(load_word_ajax.responseText) getId('div_contents').innerHTML=load_word_ajax. responseText;//在客户端显示聊天信息*/ document.getElementById(\"div_contents\").scrollTop=100000; } } } 处理客户端显示的代码

var online_ajax; function keeponline() { var username=\"\"; if(!username) { 32

第五章 详细设计 alert(\"您已经离开了讨论系统!\"); window.location.href=\"../index.php\"; } online_ajax=createAJAX(); online_ajax.open('POST','',1); online_ajax.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\"); online_ajax.onreadystatechange=function() { if(online_ajax.readyState==4&&online_ajax.status==200) {//alert(online_ajax.responseText); var message=online_ajax.responseText; if((online_ajax.responseText.indexOf(\"noone\"))!=-1) { getId('div_online').innerHTML=\"\"; //显示在线用户 getId('online').innerHTML=\"在线人数:0\"; } else { var arrtemp=message.split(\"|\"); getId('div_online').innerHTML=arrtemp[1]; getId('online').innerHTML=arrtemp[0]; } } } online_ajax.send(\"action=keep\"); } Javascript获取在线人数的代码

5.3.4 历史记录模块

历史记录模块主要是实现查看用户历史的对话,能够更具记录回忆之前的对话主题,方便下一次继续本话题。

查看历史记录的界面如图5.4所示:

33

茂名学院本科毕业设计:基于WEB的讨论系统

图5.4 历史记录页面

查看历史记录的核心代码:

$PageSize = 35; // 每页数量 // 获取总数据量 $sql = sprintf(\"select COUNT(*) from chat_mess where user_from='%s' or user_from='1' or user_to='%s' order by id asc\",$username,$username); $result = mysql_query($sql,$conn) or die(mysql_error()); $row = mysql_fetch_array($result); $amount = $row[0]; // 记算总共有多少页 if( $amount ) { if( $amount <=$PageSize ) { //如果总数据量小于$PageSize,那么只有一页 34

第五章 详细设计 $page_count = 1; } if( $amount % $PageSize ) { //取总数据量除以每页数的余数 $page_count = (int)($amount / $PageSize) + 1; //如果有余数,则页数等于总数据量除以每页数的结果取整再加一 } else { $page_count = $amount / $PageSize; //如果没有余数,则页数等于总数据量除以每页数的结果 } } else { $page_count = 0; } if($page>$page_count) { $page-=1; } $startRow_chat_mess=1; if(isset($_GET['start'])) { $startRow_chat_mess=$_GET['start']; } // 获取数据,以二维数组格式返回结果 if( $amount ) { $sql=sprintf(\"select * from chat_mess where user_from='%s' or user_from='1' or user_to='%s' order by id asc\",$username,$username); $lines= mysql_query($sql,$conn); $rows=mysql_num_rows($lines); } //数据的结果是二维数组,最终生成HTML代码显示到屏幕

35

茂名学院本科毕业设计:基于WEB的讨论系统 删除历史记录的界面如图5.5所示:

图5.5 删除历史记录

删除历史记录的核心代码:

Javascript操作部分代码

if(isset($array[$i])) { $colname_mess=(get_magic_quotes_gpc())?$array[$i]:addslashes($array[$i]); //特殊字符前加上反斜线溢出 } 37

茂名学院本科毕业设计:基于WEB的讨论系统 $sql=sprintf(\"DELETE FROM chat_mess WHERE id=%s\",$colname_mess); $Result1=mysql_query($sql) or die(mysql_error()); 从数据库中删除记录代码

5.3.5 修改密码模块

本模块的主要功能是让用户能够修改自己的密码,修改密码时必须输入旧密码,新密码要进行二次确认,当两次密码输入一致时才能修改密码,不一致时提示两次密码输入不一致。如图5.6所示:

图5.6 修改密码页面

修改密码核心代码:

$psw=md5($psw); $sql=sprintf(\"update user set psw='%s' where username='%s'\", $psw,$username); $Result1=mysql_query($sql,$conn); 38

第五章 详细设计

5.3.6 退出登录模块

为防止用户误操作,单击退出登录时会有确认对话框,只有当用户确定的时候才执行退出操作,若用户单击取消则不会进行任何操作。如图5.7所示:

图5.7 退出登录页面

退出登录部分核心代码:

$row=mysql_fetch_assoc($lines); $login_time=$row['login_time']; $tt=strtotime($login_time)-10*60;//将用户设为下线状态 $tt=date(\"Y-m-d H:i:s\",$tt); $sql=sprintf(\"update user set login_time='%s' where username='%s'\", $tt,$username); mysql_query($sql,$conn); $day = date(\"Y-m-d H:i:s\",gmmktime()+(60*60*8));//得到当前时间 $message=\"\". $username.\" 离开了讨论系统!\"; $sql=sprintf(\"insert into chat_mess (time,content,user_from,user_to) values ('%s','%s','1','1')\",$day,$message); mysql_query($sql,$conn); session_destroy(); 退出时摧毁SESSION,防止非法用户进行操作。

39

茂名学院本科毕业设计:基于WEB的讨论系统

第六章 系统测试

6.1系统测试说明

6.1.1系统测试简介

软件系统测试不仅是检测软件的整体行为表现,从另一个侧面看,也是对软件开发设计的再确认。

进行软件系统测试工作时,具体的测试用例是由开发方提供,并由测试方和用户共同补充制定的。在开发方做完功能演示后,可以进行下列测试:

(1) 界面(外观)测试; (2) 可用性测试; (3) 功能测试; (4) 稳定性(强度)测试; (5) 性能测试; (6) 强壮性(恢复)测试; (7) 逻辑性测试; (8) 破坏性测试;

说明:实际进行的测试内容有测试方法根据具体情况确定,并非文中所列测试内容都必须进行测试。

(1) 界面(外观)测试

对照界面规范(在软件需求规格说明书中规定,或者由软件工程规范中给出)和界面表(在概要设计中给出),检查各界面设计是否规范,包括:界面风格、表现形式、组件用法、字体选择、字号选择、色彩搭配、日期表现、计时方法、时间格式、对齐方式等等,是否符合规范、是否协调一致、是否便于操作。

(2) 可用性测试

测试操作是否方便,用户界面是否友好等。测试系统是否有影响操作流程的界面Bug和功能Bug,纪录具体Bug的数量、出现频率和严重程度。

(3) 功能测试

检查数据在流程中各个阶段的准确性。对系统中每一模块利用实际数据运行,将其结果与同样数据环境下应该得出的结果相比较,或与软件需求规格说明书中要求的结果进行比较,如有偏差,则功能测试不能通过。

检查软件需求规格说明书中描述的需求是否都得到满足;系统是否缺乏软件需求规格说明书中规定的重要功能;以及系统实际使用中不可缺少而软件需求规格说明书中没

40

第六章 系统测试 有规定的功能。

如果存在遗产数据,应该检查遗产数据转换是否正确。 (4) 稳定性(强度)测试

测试系统的能力最高实际限度,即检查软件在一些超负荷情况下,功能实现的情况。例如:要求软件进行某一行为的大量重复、输入大量的数据或大数值数据、对数据库进行大量复杂的查询等。

利用边界测试(最大值、最小值、N次循环)对系统进行模拟运行测试,观察其是否处于稳定状态。

(5) 性能测试

根据系统设计指标,或者对被测软件提出的性能指标,测试软件的运行性能,例如:传输连接最长时限、传输错误率、计算精度、记录精度、响应时限和恢复时限等。

(6) 强壮性(恢复)测试

采用人工的干扰使应用软件、平台软件或者系统硬件出错,中断正常使用,检测系统的恢复能力。进行强壮性测试时,应该参考性能测试相关的测试指标。

(7) 逻辑性测试

根据系统的功能逻辑图,测试软件是否按规定的逻辑路径运行,选择一些极限数据判断软件运行是否存在错误或非法路径,从而发现系统的逻辑错误或非法后门。

(8) 破坏性测试

输入错误的或非法的数据(类型),检查系统的报错纠错的能力及稳定性。并测试可连续使用多长时间而系统不崩溃。

6.1.2系统测试环境

系统的运行需要一定的环境,本章将讲述的是在以下测试环境中相应的测试过程。  操作系统:Windows XP  浏览器:IE 6

 服务器:Apache 2.2.11  PHP软件:PHP 5  数据库:MySQL 5.1.30

6.2系统测试过程

6.2.1系统测试内容

用户登录,如果用户未注册,可以以游客身份登录,并引导用户进行注册。 注册时可以先验证原要注册的昵称是否已被注册,如果已被注册,提醒用户选择另外的昵称。

41

茂名学院本科毕业设计:基于WEB的讨论系统 用户注册后自动登入系统,无需再次输入用户名密码登入。

用户登录后,可以浏览对话、查看在线用户,并能够查看和删除以前的对话记录。 发送对话可以设置对话的颜色和大小,验证是否在对方的屏幕上也显示相同的颜色和大小。

用户修改密码时必须验证原密码,并且要二次确认新密码。 退出系统之后要清除用户的SESSION,防止别人非法进入。

6.2.2系统测试过程

以游客身份登录系统,可以查看聊天信息,但不能发言。如图6.1所示

图6.1 以游客身份登录

用户注册时,需输入用户昵称和密码,密码需二次确认。如图6.2所示:

42

第六章 系统测试 图6.2 用户注册页面

如果昵称已经存在,则提示用户。如果6.3所示:

图6.3 昵称已经存在

如果用户输入的密码和确认密码不一致,则暂停注册并提示用户,如图6.4所示:

图6.4 密码输入不一致时

43

茂名学院本科毕业设计:基于WEB的讨论系统 注册成功之后可以直接登入系统,系统出现欢迎信息。如图6.5所示:

图6.5 注册之后登入系统

测试字体的颜色和字号,系统按设定的样式显示。如图6.6所示:

图6.6 设置字体和字号

查看历史记录,可以查看以前的对话记录。如图6.7所示:

图6.7查看历史记录

44

第六章 系统测试

删除历史记录,选中后可以删除指定项的记录。如图6.8所示:

图6.8 删除历史记录

退出登录,退出时弹出确认框防止误操作,用户单击确认后才进行退出操作,用户单击取消则不进行任何操作。如图6.9所示:

图6.9 退出系统

45

茂名学院本科毕业设计:基于WEB的讨论系统

退出之后再次进入,已经不能再进入系统,而是弹出登录页面提示用户登录才能进入系统。如图6.10所示:

图6.10 退出之后尝试进入

此时已经提示需要登录才能进入,说明退出登录成功。

6.3测试结论

本章通过为系统注册一个用户、登录系统并发表对话,以及查看并删除历史记录,最后退出系统,证明了此基于WEB的讨论系统是可行的,基本满足了成员之间进行讨论的各种需求,能够通过验收。

测试过程中,注册用户名时输入了一个已经存在的昵称,系统提示此昵称已经被注册,防止了用户对无效用户名进行注册;用户上线后,在线用户列表能够及时更新,可以和用户进行私聊;历史记录能够查看和删除;发送对话时设置对话的字体和字号大小,在自己和对方的屏幕上已经按设置显示;退出登录时已经清空用户的SESSION,能够防止别人非法进入。

综上所述,本讨论系统已经能够满足在不同地域的成员之间进行讨论,能够充分方便成员之间的交流,程序运行结果是正确的。

46

第六章 系统测试

结论

基于WEB 的讨论系统按照开题报告的要求实现了预期目标,成功建设了一个基于B/S的讨论系统。用户可以通过注册得到一个自己相对于这个网站的一个长期使用帐号,并在以后的使用过程中直接使用中个帐号而不用再次申请帐号登录,同时这样的一个ID也会成为聊天室中你的代名,从而在这里建立起你自己的一个虚拟形象,便于较长期的更有趣味性的在这个聊天室里同大家聊天。聊天信息的处理也已基本完善,实现了用户之间的聊天信息交流以及两个用户之间的悄悄话或私聊处理,对每个刚到来的成员在公共界面里写出欢迎信息,用户可以给自己的文字选择喜欢的颜色和简单样式。界面简单友好,提示明确,用户使用起来也将非常简单。总体上本次课程设计已经基本具备一个讨论系统的功能,用户能够顺心的使用了。

当然,“没有最好,只有更好”,每个人都想自己的设计能够完美,但在努力的过程只能说在不断的完善过程中,我的设计也是这样的一个情况,我也很想使它完美,但因为前期的实习工作,都在时间上给我的作业带来了一些困难,以致还有很多的不错的想法没有在系统上实现,如可以给用户选择头像的功能,给用户配备可查看对方资料的功能等等,都是一种遗憾。

人都是在挫折中成长的,没有挫折就没有成长,这次毕业设计让我学习了很多也收获了很多。以后在计算机行业的路上同样也会遇到很多的挫折,但我相信,我会以更强大的干劲去面对、去克服。

这是一次愉快的学习过程,路上,我一路收获着。

47

茂名学院本科毕业设计:基于WEB的讨论系统

致谢

毕业设计按计划如期完成,在近四个月的毕业设计编写中,虽然在开始阶段遇到了许许多多的问题,以致程序开发时遇到了很多困难,但是后来经过刘晶老师的指导,渐渐找到了其中的方法,使设计能够得以完成。本次毕业设计步骤包括分析、设计、编码、调试以及论文的写作,在这一过程中,我通过查阅大量有关资料、向老师请教、与同学交流经验等方式使自己学到了不少有用的知识,并大大提高了自己的动手能力。让我充分体会到了在创造中探索的艰辛和系统运行成功后的喜悦。

在此,我要特别感谢我的指导老师刘晶老师。自毕业设计开始以来,她一直给我们极大的帮助和耐心的指导,并提出了许多宝贵的意见。老师严谨的工作态度和耐心育人的精神给我留下了深刻的印象,也给予我极大的鼓舞,值得我终生学习。在此对老师郑重说一声“老师您辛苦了,您的为人师表的作风会让我终生受益的,谢谢您。”

另外,毕业在即,我还要衷心感谢电信学院全体老师四年来对我的教诲,你们不仅使我的知识、能力得到提高,更重要的是教会了我怎样提高自己的自学能力,怎样去适应社会,适应工作,怎样做人,怎样做事,希望老师可以培养出更多优秀的人才,让他们能实现自身价值,来回报社会,贡献国家。

最后祝各位老师工作顺利、身体健康!

48

参考文献

参考文献

[1] 吉尔摩.《PHP和MySQL Web开发》(原书第三版). 人民邮电出版社.2009 [2] 古曼兹,贝肯,瑞桑斯.《PHP 5权威编程》.电子工业出版社.2008 [3] 杜江.《PHP 5 与MySQL 5 Web 开发技术详解》.电子工业出版社.2007 [4] 张营辉.《PHP网络编程从入门到精通》.清华大学出版社.2007 [5] 张海藩.《软件工程导论》.清华大学出版社. 2006.

[6] 曹衍龙,赵斯思.《PHP网络编程技术与实例》.人民邮电出版社.2006 [7] 聂庆鹏.《PHP+MYSQL动态网站开发与全程实例》.清华大学出版社.,2007 [8] 孙鹏程.《完全PHP网络开发详解》.电子工业出版社.1990 [9] 应勤.《Photoshop 7.0 入门与提高》.清华大学出版社.2003 [10] .《PHP+MYSQL经典案例剖析》.清华大学出版社.2007 [11] PHP.Net——http://www.php.net .PHP源站点

[12] PHPChina——http:// www.phpchina.com . PHPChina 开源社区门户 [13] 百度——http:// baike.baidu.com/view/99.htm .百度百科 [14] Zend——http://www.zend.com . PHP Developer tools

[15] w3school——http://w3school.com.cn/ . 领先的 Web 技术教程

49

茂名学院本科毕业设计:基于WEB的讨论系统

附录A 用户使用说明书

1. 登录界面,如图A1所示:

图A1 登录界面

游客身份登录系统,可以查看聊天信息,但不能发言。如图A2所示:

图A2 以游客身份登录

50

附录A 用户使用说明书

2. 用户注册时,需输入用户昵称和密码,密码需二次确认。如图A3所示:

图A3 用户注册页面

如果昵称已经存在,则提示用户。如果A4所示:

图A4 昵称已经存在

如果用户输入的密码和确认密码不一致,则暂停注册并提示用户,如图A5所示:

图A5 密码输入不一致时

51

茂名学院本科毕业设计:基于WEB的讨论系统 3. 注册成功之后可以直接登入系统,系统出现欢迎信息。如图A6所示:

图A6 注册之后登入系统

设置字体的颜色和字号,系统将按设定的样式显示。如图A7所示:

图A7 设置字体和字号

4. 查看历史记录,可以查看以前的对话记录。如图A8所示:

图A8查看历史记录

52

附录A 用户使用说明书

5. 删除历史记录,选中后可以删除指定项的记录。如图A9所示:

图A9 删除历史记录

6. 退出登录,退出时弹出确认框防止误操作,用户单击确认后才进行退出操作,用户单击取消则不进行任何操作。如图A10所示:

图A10 退出系统

53

茂名学院本科毕业设计:基于WEB的讨论系统 退出之后再次进入,已经不能再进入系统,而是弹出登录页面提示用户登录才能进入系统。如图A11所示:

图A11 退出之后尝试进入

此时,已完成讨论系统使用的整个过程,希望这个系统让您获得方便,祝您使用愉快!

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务