毕业设计PHP基于WEB的讨论系统.docx
- 文档编号:6600284
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:49
- 大小:1.09MB
毕业设计PHP基于WEB的讨论系统.docx
《毕业设计PHP基于WEB的讨论系统.docx》由会员分享,可在线阅读,更多相关《毕业设计PHP基于WEB的讨论系统.docx(49页珍藏版)》请在冰点文库上搜索。
毕业设计PHP基于WEB的讨论系统
摘要
随着网络技术的迅猛发展,网上交流已不再陌生,它开辟出了一条新的沟通渠道,并被人们逐渐重视。
在当今WEB系统开发中,PHP是一种比较流行的语言,是人们经常使用的语言之一。
本系统就是通过使用PHP技术来设计与实现基于WEB的讨论系统,并采用了当今主流技术,即B/S体系结构,它打破了以前传统的C/S开发模式。
本文对B/S模式进行了简要的说明,并概要的介绍了一下PHP,包括他的特点和运行方式,以及PHP开发环境的搭建在文中都有详细的说明。
从需求分析、概要设计再到系统设计逐层深入的把本系统进行了分析与研究,详细地讲解了系统的功能,最后还对系统进行了详细的测试。
关键词:
讨论系统;B/S;PHP
Abstract
Withtherapiddevelopmentofnetworktechnology,onlinecommunicationisnolongerstrange,itopensupanewcommunicationchannel,andisincreasinglyemphasizedbypeople.BecausePHPisarelativelymaturelanguage,sothatitisoneofthefrequentusedlanguagesinthedevelopmentofnetworksystem.Thissystemdesignsandimplementsane-learningsystem—teachingforum,throughtheuseofPHPtechnologyandusingtoday'smainstreamtechnology,thatis,B/Sstructure,whichbreakstheprevioustraditionalC/Sdevelopmentmode.
Inthispaper,B/SmodelarebrieflydescribedandtheoutlineofPHP,includingitscharacteristics,operationalmodalitiesarepresented.HowtobuildthePHPdevelopmentenvironmentisdetaileddecribedinthetextdescription.Fromtherequirementsanalysis,theoverallprogram,feasibilityanalysis,outlinedesign,totheoveralldesignofthissystemhasbeenanalyzedlayerbylayerdeepen.Thefunctionsofthesystempageareexplainedindetail,andfinallythesystemtest,explainedslightly
Keywords:
discussionsystem;B/S;PHP
第一章引言
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技术和ZendStudio软件设计讨论系统各模块页面;
4.熟悉Apache和PHP的运行机制和配置方法;
5.研究数据库与PHP的连接模块;
6.Ajax的工作机制;
7.讨论系统的总体设计与实现;
8.对基于WEB的讨论系统进行安全性分析。
第二章需求分析
2.1可行性分析
可行性分析法是对工程项目进行系统技术经济论证,经济合理性综合分析的方法。
其目的是通过对技术先进程度,经济合理性和条件可能性的分析论证,选择以最小的人力、物力、财力耗费,取得最佳技术、经济、社会效益的切实方案。
它是解决项目投资前期分析的主要手段。
本讨论系统的可行性主要从经济可行性、技术可行性、操作可信性和社会可行性分析来考虑。
2.1.1经济可行性分析
在经济上,该项目是可行的。
本系统的制作只需安装了PHP、Mysql、Apache,并且可运行在Linux系统上,而这些软件都是免费的,从外界所需的条件来讲成本比较低,开发时无需网络支持,发布时只需要在网上有空间,系统管理员定期对网站进行维护,网站就可以正常运行。
2.1.2技术可行性分析
在技术上,该项目是可行的。
本网站系统是采用PHP开发,以异步请求为核心,Mysql为数据库开发,这些软件可方面在Linux上安装和调试,用ZendStudio和Photoshop等网页处理工具,保证网站正常使用的前提下,页面清新淡雅,内容丰富多彩。
2.1.3操作可行性
在操作上,该项目是可行的。
未注册用户可在系统上登陆、浏览公共讨论内容;已注册普通用户除了有未注册用户的功能权限外,还可发表讲话、查看历史记录和删除历史记录等功能,在系统里面的操作简单方便。
2.1.4社会可行性
当今社会是一个信息技术的时代,计算机的发展越来越快,同时接触和使用计算机的用户也显著增加,在这样一个时代,计算机信息的需求量是非常大的,因此,该讨论系统能够很好的满足社会的需求。
2.2综合需求分析
软件需求分析是软件设计的基础。
它采用一系列行之有效的技术、方法和工具来分析用户需求,通过特定的形式系统地描述拟开发软件的功能、性能,以及行为特征和相关约束,定义所有内外部特征,最后形成既能指导软件设计、又能同用户沟通的软件需求规格说明。
它覆盖了软件设计之前的各项活动。
需求分析还是一个项目提出方和承担方相互沟通的过程,一方是系统的使用者,一方是系统的制造者,在系统涉及过程中,只有双方相互配合,共同对系统进行设计才能最后达到使用的要求。
用户是业务上的熟悉者,对业务流程有非常清晰的了解,但是,对于软件需求方面的描述是不了解的,他们所能提供的只是他们最终要达到的功能,但是,这其中包含的业务流程是非常复杂的。
我们拿到用户需求后,应该根据功能、流程进行初步的设计,构造出业务流程图,再让用户进行评审,提出业务流程上不对的地方进行修改。
这样来回的交流,最终才能取得较全面的需求,并减少后期的修改。
2.2.1功能需求
通过对本系统的使用场景模拟和用户调研,本讨论系统需要实现以下功能:
(1)免安装客户端
用户在不用额外安装客户端的情况下能够使用本系统,简化用户使用本系统的操作,方便用户第一次使用本系统,能吸引更多的新用户使用。
(2)游客身份登陆
用户第一次接触本系统时,有很多会抱着试一试的心态进来的,如果在一开始就让用户注册等操作,部分用户会觉得太麻烦而放弃使用。
如果一开始让用户可以以匿名方式登陆,能够看公共聊天的内容但要注册后才能发表讲话,这样才能吸引用户进行注册。
(3)用户注册
注册过程尽量简化,系统对用户操作本着友好的宗旨。
用户注册之后,能够使用本网站的所有功能。
(4)用户登录
用户可以通过本功能登录系统。
若用户未登录时进入本系统,自动提示用户进行登录。
第一次注册用户可以实现自动登陆系统。
(5)查看在线用户
用户登陆之后,能够在界面查看参与讨论的用户有哪些,并能显示在线人数。
(6)选择对话用户
进入系统后,默认是公共聊天模式,发表讲话所有用户能接收到;用户在在线列表里面单击某个用户,可以切换为私聊模式,在对话框提示只和该用户对话,发送的对话只有该用户才能接收到,对其他用户透明。
此外,在线列表还有一个所有人的选项,用户单击该选项可以恢复公共聊天模式。
(7)发表讲话
发表讲话时,用户可以选择字体的大小和颜色,方便区分和其他用户的消息;此外,字数限定在一定范围内,防止用户发送字数过多的评论,影响其他用户使用;发送频率也要控制,对间隔太短的消息进行屏蔽,防止用户恶意刷屏,保证系统的稳定运行。
(8)查看历史记录
用户登录之后,在聊天界面显示查看历史记录的链接,点击之后能查看以前讲话的记录。
(9)删除历史记录
用户登录之后,能删除自己不想保存的聊天记录,并且删除记录后,在对方聊天记录同步删除,保持用户之间数据一致。
(10)用户管理
在聊天界面显示修改密码和退出登录链接。
修改密码可以对自己的密码进行修改,但必须输入原来的密码,新密码要输入两次进行确认;退出登录可以安全退出系统,防止用户离开后被其他用户使用并窃取聊天内容。
2.2.2可靠性需求
硬件可靠性:
包括服务器硬盘、CPU、网络环境的运行可靠性等,保证这些硬件介质正常可靠运行。
软件可靠性:
要求软件在承载一定用户在线等复杂的条件下也能稳定运行,不会产生异常情况。
2.2.3安全性需求
1.运行系统的安全:
保证信息处理和传输系统的安全,简称“系统安全”。
系统安全主要包括计算机系统机房环境的保护,计算机网络拓扑结构设计的安全性考虑,硬件系统的可靠安全运行,计算机操作系统和应用软件的安全,数据库系统的安全等,本质上是保护系统的合法操作和正常运行。
2.信息传播的安全:
信息传播结果的安全,它侧重于防止和控制非法的、有害的信息进行传播,避免对互联网上大量自由传输的信息失控,本质上主要是维护社会的道德、法则和国家利益。
3.信息内容的安全:
网络上信息内容的安全,即狭义的“信息安全”,包括用户身份认证(一般采用口令鉴别)、用户存取信息的权限控制、数据库记录访问权限、安全审计(一般系统都有日志记载)、计算机病毒防治、数据加密等内容。
4.网络安全:
运行系统的安全、信息传播的安全和信息内容的安全的集合体。
2.2.4用户需求
(1)实现讨论系统基本功能,能接收各个用户的言论,按照各自的聊天对象发送到相应的用户机浏览器上,在用户浏览器上既能输入自己的发言内容又能看到他人与自己的对话内容,能与所喜欢的用户进行私聊,开设自己单独的聊天包房;
(2)拥有讯息区,显示聊友对话内容的区域,方便聊友观看和个人有关的对话;
(3)拥有在线名单区,显示在线聊友,聊友昵称等简单信息;
(4)拥有发言区,让聊友能够让按照个性化的风格来发表自己的观点,并提供让聊友选择聊天对象,私聊等功能。
2.3业务流程图
业务流程图(TransactionFlowDiagram,简称TFD),就是用一些规定的符号及连接来表示某个具体的业务处理过程。
在对系统的组织结构和功能进行分析时,需从一个实际业务流程的角度将系统调查中有关该业务流程的资料都串起来作进一步的分析。
业务流程分析可以帮助我们了解该业务的具体处理过程,发现和处理系统的调查工作中的错误和疏漏。
由于篇幅有限,并非所有的业务流程都会一一介绍,下面将会列出核心部分的业务流程图和相关介绍。
2.3.1登录业务流程
登录时,系统分为普通登录和游客登录两部分。
其业务流程如图2.1所示:
图2.1登录业务流程图
2.3.2查看在线用户业务流程
登录后,普通用户和游客都能查看在线用户。
用户会发送请求,先从数据库读取用户数据,然后由程序程序生成在线用户列表,如果在线列表有更新,则会更新到用户屏幕上,以上过程会反复执行,直到用户退出登录,流程才会停止。
其业务流程如图2.2所示:
图2.2查看在线用户业务流程图
图2.3查看讨论业务流程图
2.3.3查看讨论业务流程
登录后,普通用户和游客都能查看其他用户的讨论内容。
首先由用户发送请求,从数据库读取讨论数据,如果讨论内容有更新,则会更新到用户屏幕上,以上过程会反复执行,直到用户退出登录,流程才会停止。
其业务流程如图2.3所示:
2.3.4发表讨论业务流程
登录后,只有普通用户能表讨论,游客不能发表。
用户编写好内容后,发送请求到服务器,由服务器脚本把用户编写的讨论内容插入到数据库。
其业务流程如图2.4所示:
图2.4查看讨论业务流程图
第三章开发环境和开发工具介绍
基于WEB的讨论系统,基于目前非常流行的WEB2.0技术。
本系统设计为B/S结构的应用系统。
服务器端的WEB服务器采用Apache,客户端用PHP作为前端开发工具,后台采用MySQL5.1.30的数据库。
系统运行环境为WindowsXP或Linux。
服务器端采用目前流行的服务器端脚本语言——PHP,其优势在于其是基于WEB的开发工具,方便的程序跟踪和调试环境,有众多的扩展类库,安全性高,运行稳定,语法简单易学易用等,还有一大特点就是免费,是进行快速、高效开发的理想选择。
3.1PHP概述
PHP独特的语法混合了C、Java、Perl以及PHP自创新的语法。
它可以比CGI或者Perl更快速的执行动态网页。
用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
PHP具有非常强大的功能,所有的CGI的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。
PHP最初是1994年RasmusLerdorf创建的,刚刚开始只是一个简单的用Perl语言编写的程序,用来统计他自己网站的访问者。
后来又用C语言重新编写,包括可以访问数据库。
在1995年以PersonalHomePageTools(PHPTools)开始对外发表第一个版本,Lerdorf写了一些介绍此程序的文档,并且发布了PHP1.0。
在这早期的版本中,提供了访客留言本、访客计数器等简单的功能。
以后越来越多的网站使用了PHP,并且强烈要求增加一些特性,比如循环语句和数组变量等等,在新的成员加入开发行列之后,在1995年中,PHP2.0发布了。
第二版定名为PHP/FI(FormInterpreter)。
PHP/FI加入了对mySQL的支持,从此建立了PHP在动态网页开发上的地位。
到了1996年底,有15000个网站使用PHP/FI;时间到了1997年中,使用PHP/FI的网站数字超过五万个。
而在1997年中,开始了第三版的开发计划,开发小组加入了ZeevSuraski及AndiGutmans,而第三版就定名为PHP3。
2000年,PHP4.0又问世了,其中增加了许多新的特性。
PHP原本的简称为PersonalHomePage,是RasmusLerdorf为了要维护个人网页,而用c语言开发的一些CGI工具程序集,来取代原先使用的Perl程序。
最初这些工具程序用来显示RasmusLerdorf的个人履历,以及统计网页流量。
他将这些程序和一些表单直译器整合起来,称为PHP/FI。
PHP/FI可以和数据库连接,产生简单的动态网页程序。
RasmusLerdorf在1995年6月8日将PHP/FI公开释出,希望可以透过社群来加速程序开发与寻找错误。
这个释出的版本命名为PHP2,已经有今日PHP的一些雏型,像是类似Perl的变量命名方式、表单处理功能、以及嵌入到HTML中执行的能力。
程序语法上也类似Perl,有较多的限制,不过更简单、更有弹性。
在1997年,任职于TechnionIIT公司的两个以色列程序设计师:
ZeevSuraski和AndiGutmans,重写了PHP的剖析器,成为PHP3的基础,而PHP也在这个时候改称为PHP:
HypertextPreprocessor.[5]。
经过几个月测试,开发团队在1997年11月释出了PHP/FI2,随后就开始PHP3的开放测试,最后在1998年6月正式释出PHP3。
ZeevSuraski和AndiGutmans在PHP3释出后开始改写PHP的核心,这个在1999年释出的剖析器称为ZendEngine[7],他们也在以色列的RamatGan成立了ZendTechnologies来管理PHP的开发。
在2000年5月22日,以ZendEngine1.0为基础的PHP4正式释出,2004年7月13日则释出了PHP5,PHP5则使用了第二代的ZendEngine[5]。
PHP包含了许多新特色,像是强化的面向对象功能、引入PDO(PHPDataObjects,一个存取数据库的延伸函数库)、以及许多效能上的增强。
目前PHP4已经不会继续更新,以鼓励用户转移到PHP5。
2008年PHP5成为了PHP唯一的有在开发的PHP版本。
将来的PHP5.3将会加入Latestaticbinding和一些其他的功能强化。
PHP6的开发也正在进行中,主要的改进有移除register_globals、magicquotes和Safemode的功能。
今天,已经有包括XX和雅虎等在内的数千万大型网站,以及众多的开发人员和编程爱好者正在使用PHP。
从最初的PHP/FI到现在的PHP5,PHP的发展是及其迅猛的,其未来的发展前景也必定令人瞩目。
3.2PHP的特点
PHP有着简单易用和功能强大的特点,这完全要归功于其开放的模块化设计。
在基于Zend引擎的支持和优化下,各种各样的扩展模块,其功能已经覆盖几乎所有的Web应用。
1、开放性源代码
PHP[4]的原始码完全公开,在OpenSource意识抬头的今天,它更是这方面的中流砥柱。
新函数库的不断加入,强大的更新活力,使得PHP无论在UNIX还是Win32的平台上都可以有更多新的功能。
它提供丰富的函数式,使其在程序设计方面有着更好的支援,比传统CGI或者ASP等程序更好,而且还有更强的新功能、更丰富的函数库。
2、基于服务器端
由于PHP是在Web服务器端运行的,所以即使PHP程序很大、很复杂,也不会降低客户端的运行速度。
这意味着它同ASP一样,不会占用太多的客户端资源,同时相对于ActiveX、VBScript或JavaScript等运行在客户端的语言工具,也具有较好的安全性。
而且这些语言可以很好地结合起来,用PHP可以方便地激活ActiveX控件,也可以动态地生成Script语句。
3、跨平台
PHP程序可以在UNIX、Linux、Windows和Macintosh等操作系统下运行。
同时PHP可以在Apache、IIS或ISAPI服务器上运行,并且不经改变就可在服务器平台间移植。
这一点很重要,也是它流行的一个重要原因。
NASPI一定要在Netscape的服务器(如NETSCAPEENTERPRISESERVER或FASTTRACKSERVER)上才可以运行,而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作为ApacheWeb服务器的一部分时,运行代码不需要调用外部二进制程序,服务器解释脚本也不需要承担任何额外负担,这使得PHP速度很快。
用户可以组建一个可以读取XML信息的PHP版本。
6、图象处理
PHP并非只限于创建HTML文件,还可以使用PHP动态地创建图像,甚至可以使用更方便的GIF数据流。
大多数图象函数都是在GD库中完成它们的功能的,GD库实际上是处理GIF图像的免费软件,它可以通过PHP2.INI获得DL函数来加载。
但getimagesize函数是唯一的例外,因为它总是有效的,因此需要使用GD库中的图象函数来编译PHP。
需要说明的是,所有生成GIF图像的函数均要求GD扩展。
这些函数用来处理在Web中最为流行的GIF格式的图形图像。
在利用这些函数生成图像时,不能简单地决定在输出HTML脚本中间输出一个图像,而必须由一个IMG标记引出一个单独的脚本来发送一个内容类型的头。
3.3Apache服务器
Apache服务器是运行PHP程序最好的服务器系统,通常情况下Apache都是运行于Linux操作系统上的,但Apache也可以用于Windows版。
本系统就是在WindowsXP下来搭建服务器环境,采用最新的Apache2.2.11版本服务器。
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.4MySQL5.1.30
MySQL是一个多用户、多线程的SQL数据库,是一个客户机/服务器结构大应用,它由一个服务器守护程序mysqld和很多不同的客户程序及库组成。
它是目前市场上运行最快的SQL(StructuredQueryLanguage,结构化查询语言)数据库之一。
它提供了其他数据库少有的编程工具,而且MySQL对于商业和个人用户是免费的。
在本系统中,使用相对MySQL5.1.30版本。
MySQL5的功能特点如下:
1)可以同时处理几乎不限数量的用户;
2)处理多达50000000条以上的记录;
3)命令执行速度快;
4)具有简单有效的用户特权系统。
3.5ZendStudio
一个屡获大奖的专业PHP集成开发环境,具备功能强大的专业编辑工具和调试工具,支持PHP语法加亮显示,支持语法自动填充功能,支持书签功能,支持语法自动缩排和代码复制功能,内置一个强大的PHP代码调试工具,支持本地和远程两种调试模式,支持多种高级调试功能。
如图3.1所示
图3.1
3.6软件开发环境
在开发基于WEB的讨论系统时,该项目使
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 PHP 基于 WEB 讨论 系统