论坛系统的设计与实现(程序代码+任务书+说明书+外文翻译+演示文稿)_第1页
论坛系统的设计与实现(程序代码+任务书+说明书+外文翻译+演示文稿)_第2页
论坛系统的设计与实现(程序代码+任务书+说明书+外文翻译+演示文稿)_第3页
论坛系统的设计与实现(程序代码+任务书+说明书+外文翻译+演示文稿)_第4页
论坛系统的设计与实现(程序代码+任务书+说明书+外文翻译+演示文稿)_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

i论坛系统的设计与实现摘要随着Internet的发展,网站的作用越来越重要,被称之为继广播、报纸、杂志、电视后的第五种媒体数字媒体,拥有众多优势,所以现在不少企业都有或正在建设自己的网站,她已经是人们了解企业的窗口之一。同时由于互联网业的复苏,带动了如门户网站、论坛系统等的发展。论坛也称为BBS,BBS是BulletinBoardSystem的缩写,意思是电子公告版,一种在Internet上常见的用于信息服务的Web系统,它的主要服务是用来帮助浏览者相互沟通、吸引用户、服务用户的。他起源于20世纪80年代初,最初只是用于发布公告信息和讨论问题的在线交流平台,后来随技术的发展与网络的普及功能越来越强大。由于得到了广大网友的欢迎,越来越多的商业网站开始重视论坛,把论坛作为与用户交流的平台和在线技术支持与服务的平台。论坛将采用B/S体系结构,人们通过浏览器就可以访问论坛网站的所有页面,保证的服务器的安全。数据库采用免费,小巧,易用的MySQL数据库。该论坛功能较齐全,在这里可以自由地发表自己的观点和对论坛的主题发表意见,我们还可以对网友的问题及时地解决,获取对自己有用的知识。该论坛还有一些特殊的功能,如在线人员显示、强大的搜索功能。本网站严格按照软件项目开发的流程进行开发,对于网站开发的可行性分析、需求分析、概要设计、详细设计以及对网站的测试与维护都有详细的论述和实现过程。本套论坛的优点在于它具有强大的可扩展性和可维护性,非常适合校园师生使用的校园网论坛!关键词:Apache;PHP;MySQL;HTML+DIV+CSSiiAbstractWiththedevelopmentofInternet,moreandmoreimportantroleinthesite,tobecalledfollowingthefifthbroadcastmedia,newspapers,magazines,televisionpost-digitalmedia,hasmanyadvantages,sonowmanycompanieshaveorarebuildyourownwebsite,sheisoneofthewindowsthatpeopleunderstandthebusiness.ThesametimeastherecoveryoftheInternetindustry,ledtothedevelopmentofsuchportals,forumsandothersystems.ForumalsoknownasBBS,BBSisaBulletinBoardSystemacronym,meaningelectronicbulletinboards,acommonWebontheInternetforinformationservicesystem,itsmainserviceistohelpvisitorscommunicatewitheachothertoattractusersserviceusers.Heoriginatedintheearly1980s,initiallyannouncedfortheexchangeofinformationandonlineplatformtodiscussissues,andlaterwiththedevelopmentoftechnologyandthepopularityoffunctionalnetworksandmorepowerful.Sincehasbeenwelcomedbythemajorityofusers,moreandmorestartingtofocusoncommercialwebsitesforum,theforumasaplatformtocommunicatewithusersoftheplatformandonlinetechnicalsupportandservices.ForumwilladoptB/Sarchitecture,peoplecanaccessthroughthebrowserallthepagesForumwebsitesecurityassurancesserver.Databaseusingfree,compact,easytouseMySQLdatabase.Theforumfeaturesmorecomplete,whereyoucanfreelyexpresstheirviewsandexpresstheirviewsonthethemeoftheforum,wecansolvetheproblemofusersinatimelymanner,accesstotheirownusefulknowledge.Theforumtherearesomespecialfeatures,suchasonlinestaffshowedapowerfulsearchfunction.Thissiteinstrictaccordancewiththesoftwaredevelopmentprocessfordevelopment,websitedevelopmentforfeasibilityanalysis,needsanalysis,outlinedesign,detaileddesign,andtestingandmaintenanceofthesitehavediscussedindetailandimplementationprocess.Advantagesofthisforumisthatithasasetofstrongscalabilityandmaintainability,idealforcampusforumoncampusandstudentstouse!Keywords:Apache;PHP;MySQL;HTML+DIV+CSS目录摘要.iAbstract.ii第1章系统概述.11.1总体概述.11.2开发背景.11.3开发目的.2第2章系统分析.32.1可行性分析.32.1.1技术可行性.32.1.2经济可行性.32.1.3社会可行性.32.2相关技术分析.32.2.1PHP程序设计语言介绍及特点.32.2.2MySQL数据库的选用.52.2.3Apache服务器介绍.52.3通过PHP访问MySQL.6第3章需求分析.113.1概述.113.2功能需求.113.3数据需求.123.4系统实体联系图(E-R图).123.5数据流图.14第4章总体设计.164.1系统功能模块划分.164.2系统业务流程图.16第5章数据库设计.185.1数据库分析.185.2数据库设计.18第6章系统详细设计.226.1前台设计.226.1.1前台页面设计与实现.226.1.2前台首页显示概述.236.1.3查看首页面的区域类别.236.1.4查看某版块中贴子列表.246.1.5查看帖子和回复贴内容.266.1.6发表帖子模块设计.296.2后台设计.316.2.1后台页面设计与实现.316.2.2用户管理模块设计与实现.33第7章系统总结.437.1系统的优缺点.437.2个人感想.44结论.45参考文献.46致谢.470第1章系统概述1.1总体概述本课题设计一个“网络BBS论坛系统”,实现论坛管理,用户注册,浏览帖子,发表新帖等功能。通过本课题的研究,能够增进对基于Internet/Intranet的浏览器/服务器结构的网络论坛系统的了解,是对基于WEB的网站系统的设计与实现,这些工作有利于综合运用计算机多学科的知识,为以后从事复杂系统的分析和设计打下了一定的基础。网络BBS论坛系统是在Internet开放的网络环境下,基于浏览器服务器应用模式,实现用户相互交流信息,共享资源的平台。网络BBS论坛系统突破了地域和时间限制,实现全球性资源共享,有助于人们的学习,工作,生活,提高人们的交流信息、交流思想、解决问题的能力。随着Internet技术的不断发展,以及用户群爆炸性地增长,网络不再仅仅是信息的被动获取来源,更成为人们探讨间题、交换观点的场所,其中,网上论坛扮演了极其重要的角色,随着时间的推移,论坛站点中积存了丰富的信息资源,不但有各类技术资料和新闻文档,还包含着用户的判断和评论,论坛站点己成为Web信息库的重要组成部分,自网上论坛诞生20多年以来,随着Web技术的发展,己经由原来简单的电子公告板系统发展为功能丰富的网上论坛和虚拟社区模式。各种论坛随着网络迅速发展,几乎充实着生活工作的每一个方面,无论是商界、政界,还是娱乐界,都有各种论坛。互联网正在融入我们的生活,网络提供给我们的不只是一个获取信息的来源,而且还是一个可以相互交流的空间,网上论坛正是一种供人们进行交流的网络空间,影响和改变着我们的生活。1.2开发背景原本在论坛出现以前,普通人的言论如果不能上报纸,上电视、上广播的话,最多也就十几个人能知道。而互联网的论坛,给了普通人向全国网友发表言论的舞台。早就憋坏了的人们积极到开始时为数不多的论坛留言自然带动了论坛的火热,接下来,随着时间,论坛越来越开放,数目和种类成倍增长。众所周知,高速公路是可以让许多车辆并行,高速通过的公路,信息高速公路必然也是一条很宽的信息通道,可以大量地、并行地、高速地传送多种信息。高速公路可以连成四通八达的网,信息高速公路也能构成大容量的、高速度的信息传送网络。所以信息高速公路实际上是一个高速信息网体系,主要由三大部分构成:信息源、通讯平台和应用信息系统。其中信息源包括经济、科技、教育、文化、法律、政治、军事等各种各样的社会和其他通讯设备组成的连接千家万户的通信网络,其基本组成包括:通讯网、计算机、信息和人四部分。通信网是基本支撑环境,它是一个高速、宽带、互联、互操作的大型广域网络,能够传输从低速到高速的多媒体信息。计算机及其附属设备也是网络上的主要资源,能够提供各种灵活方便的服务。而信息则主要包括公用和专用数据库,以及声、文、图信息,人则仍是所有资源的主角,并将社会发1展推向更高水平。国内的BBS站,大多数还是大型综合性BBS站。随着计算机的普及,特别是宽带的普及,BBS的活动将会进一步高涨。但是,随之而来对专注于领域方面的BBS将会慢慢增加需求。尽管BBS站台的数量在不断增长,但BBS的发展过程,也出现了一些问题。由于国内使用的BBS架站软件,都是从国外引进的,因此没有必要的中文说明。虽然一些热心的站长翻译了一些资料,但是仅靠这些是远远不够的。另外,有些站台的设立是相互抄袭,所以在结构上难免有雷同之处。而国内自己开发的BBS基本上都是处于最原始的JSPMODEL1模式,这种模式是控制层与表示层合二为一,虽然开发简单,但是拥有很差的扩展性,可维护性,这样极大的限制了BBS站点的扩展。于是在这种情况下,本文提出了目前比较流行的,基于PHP+MySQL+Apache的BBS论坛(例如,国内比较流行的论坛管理系统),本套论坛的优点在于它具有强大的可扩展性和可维护性,非常适合网民创建自己的中小型BBS论坛!1.3开发目的综上所述,本文提出了目前比较流行的,基于PHP+MySQL+Apache开发的BBS论坛,本套论坛的优点在于它具有强大的可扩展性和可维护性,非常适合学生使用的中小型校园网论坛!2第2章系统分析2.1可行性分析可行性分析是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。2.1.1技术可行性技术上的可行性分析主要分析技术条件能否顺利完成开发工作,硬、软件能否满足开发者的需要等。该BBS论坛管理系统采用了流行的PHP语言和当前新兴的Browser/Server(浏览器/服务器)模式进行开发。三层的B/S体系结构具有许多传统Client/Server(客户机/服务器)体系结构不具备的优点,而且又紧密的结合了Internet/Intranet(国际互联网/企业内部互联网)技术,是技术发展的大势所趋,它把应用系统带入了一个崭新的发展时代。数据库服务器选用MySQL数据库,它能够处理大量数据,同时保持数据的完整性并提供许多高级管理功能。它的灵活性、安全性和易用性为数据库编程提供了良好的条件。因此,系统的软件开发平台已成熟可行。硬件方面,科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,其硬件平台能满足此系统的需要。2.1.2经济可行性主要是对项目的经济效益进行评估,本系统模拟的是提供一个供用户交流的平台,为广大用户提供交流经验、探讨问题的社区。但实际只是用于个人的毕业设计,只是模拟,也不存在资金的流动,故在经济上是可行的。2.1.3社会可行性随着Internet技术的快速发展,BBS论坛已成为人们彼此沟通、交流信息的主要方式。在论坛上,人们可以对某一领域提出自己遇到的问题,随后,论坛上的其他人会根据自己的学识、经验发表意见或提出问题的方法。BBS论坛接近了人们之间的距离,它早已成为人们网上生活的必备工具。所以说BBS论坛对当今社会是相当重要的。2.2相关技术分析2.2.1PHP程序设计语言介绍及特点PHP于1994年由RasmusLerdorf创建,刚刚开始只是一个简单的用Perl语言编写的程序,用来统计他自己网站的访问者。后来又用C语言重新编写,包括可以访问数据库。在1995年以PersonalHomePageTools(PHPTools)开始对外发表第一个版本,3Lerdorf写了一些介绍此程序的文档,并且发布了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又问世了,其中增加了许多新的特性3林信良spring2.0技术手册M电子工业出版社2006年6月50-100。PHP的简称原本为PersonalHomePage,是RasmusLerdorf为了要维护个人网页,而用c语言开发的一些CGI工具程序集,来取代原先使用的Perl程序。最初这些工具程序用来显示RasmusLerdorf的个人履历,以及统计网页流量。他将这些程序和一些表单直译器整合起来,称为PHP/FI。PHP/FI可以和数据库连接,产生简单的动态网页程序。RasmusLerdorf在1995年6月8日将PHP/FI公开发布,希望可以透过社群来加速程序开发与寻找错误。这个发布的版本命名为PHP2,已经有今日PHP的一些雏型,像是类似Perl的变量命名方式、表单处理功能、以及嵌入到HTML中执行的能力。程序语法上也类似Perl,有较多的限制,不过更简单、更有弹性3林信良spring2.0技术手册M电子工业出版社2006年6月50-100。在1997年,任职于TechnionIIT公司的两个以色列程序设计师:ZeevSuraski和AndiGutmans,重写了PHP的剖析器,成为PHP3的基础,而PHP也在这个时候改称为PHP:HypertextPreprocessor。经过几个月测试,开发团队在1997年11月发布了PHP/FI2,随后就开始PHP3的开放测试,最后在1998年6月正式发布PHP3。ZeevSuraski和AndiGutmans在PHP3发布后开始改写3林信良spring2.0技术手册M电子工业出版社2006年6月50-100。PHP的核心,这个在1999年发布的剖析器称为ZendEngine,他们也在以色列的RamatGan成立了ZendTechnologies来管理PHP的开发。在2000年5月22日,以ZendEngine1.0为基础的PHP4正式发布,2004年7月13日则发布了PHP5,PHP5则使用了第二代的ZendEngine。PHP包含了许多新特色,像是强化的面向对象功能、引入PDO(PHPDataObjects,一个存取数据库的延伸函数库)、以及许多效能上的增强。目前PHP4已经不会继续更新,以鼓励用户转移到PHP53林信良spring2.0技术手册M电子工业出版社2006年6月50-100。2008年PHP5成为了PHP唯一的有在开发的PHP版本。将来的PHP5.3将会加入Latestaticbinding和一些其他的功能强化。PHP6的开发也正在进行中,主要的改进有移除register_globals、magicquotes和Safemode的功能3林信良spring2.0技术手册M电子工业出版社2006年6月50-100。PHP的特性包括:开放的源代码:所有的PHP源代码事实上都可以得到。PHP是免费的。和其它技术相比,PHP本身免费。php的快捷性程序开发快,运行快,技术本身学习快。嵌入于HTML:因为PHP可以被嵌入于HTML语言,它相对于其他语言,编辑简单,实用性强,更适合初学者。4跨平台性强:由于PHP是运行在服务器端的脚本,可以运行在UNIX、LINUX、WINDOWS下。效率高:PHP消耗相当少的系统资源。图像处理:用PHP动态创建图像面向对象:在php4,php5中,面向对象方面都有了很大的改进,现在php完全可以用来开发大型商业程序。专业专注:PHP支持脚本语言为主,同为类C语言3林信良spring2.0技术手册M电子工业出版社2006年6月50-100。2.2.2MySQL数据库的选用MySQL是现在流行的关系数据库中其中的一种,相比其它的数据库管理系统(DBMS)来说,MySQL具有小巧、功能齐全、查询迅捷等优点,关键的是它是免费的,可以在Internet上免费下载到,并可免费使用,对于一般中小型,甚至大型应用都能够胜任2王宜贵软件工程M北京:机械工业出版社,2002:20-79。MySQL具有以下优点:1使用C和C+编写,并使用了多种编译器进行测试,保证源代码的可移植性。2支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统。3为多种编程语言提供了API。这些编程语言包括C、C+、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。4支持多线程,充分利用CPU资源。5优化的SQL查询算法,有效地提高查询速度。6既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。7提供TCP/IP、ODBC和JDBC等多种数据库连接途径。8提供用于管理、检查、优化数据库操作的管理工具。9可以处理拥有上千万条记录的大型数据库。10支持多种存储引擎2王宜贵软件工程M北京:机械工业出版社,2002:20-79。2.2.3Apache服务器介绍Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛领域Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“apatchyserver”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于5多处理器环境,因此,在一个ApacheWeb站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。世界上很多著名的网站如Amazon、Yahoo!、W3Consortium、FinancialTimes等都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面2王宜贵软件工程M北京:机械工业出版社,2002:20-79。Apache的诞生极富有戏剧性。当NCSAWWW服务器项目停顿后,那些使用NCSAWWW服务器的人们开始交换他们用于该服务器的补丁程序,他们也很快认识到成立管理这些补丁程序的论坛是必要的。就这样,诞生了ApacheGroup,后来这个团体在NCSA的基础上创建了Apache2王宜贵软件工程M北京:机械工业出版社,2002:20-79。Apacheweb服务器软件拥有以下特性:支持最新的HTTP/1.1通信协议拥有简单而强有力的基于文件的配置过程支持通用网关接口支持基于IP和基于域名的虚拟主机支持多种方式的HTTP认证集成Perl处理模块集成代理服务器模块支持实时监视服务器状态和定制服务器日志支持服务器端包含指令(SSI)支持安全Socket层(SSL)提供用户会话过程的跟踪支持FastCGI通过第三方模块可以支持JavaServlets2.3通过PHP访问MySQL现在你已经可以熟练地使用MySQL客户端软件来操作数据库里的数据,我们也可以开始学习如何使用PHP来显示和修改数据库里的数据了。PHP有标准的函数用来操作数据库。我们首先学习PHP内建的数据库函数,然后会学习PHP扩展和应用程序库(PEAR,PHPExtensionandApplicationRepository)中的数据库函数,我们可以使用这些函数操作所有支持的数据库。这种灵活性源自于抽象。对于编程接口而言,抽象简化了复杂的交互过程。它将交互过程中无关紧要的部分屏蔽起来,让你关注于重要的部分。PEAR的DB类就是这样一种数据库接口的抽象。你登录一个数据库所需要提供的信息被减少到最少。这种标准的格式可以通过同一个函数来访问MySQL以及6其他的数据库。同样,一些MySQL特定的函数被更一般的、可以用在很多数据库上的函数所替代。比如,MySQL特定的连接函数是:mysql_connect($db_host,$db_username,$db_password);而PEAR的DB提供的连接函数是:$connection=DB:connect(mysql:/$db_username:$db_password$db_host/$db_database);两个命令都提供了同样的基本信息,但是PEAR的函数中还指定了要连接的数据库的类型。你可以连接到MySQL或者其他支持的数据库。我们会详细讨论这两种连接方式。本章中,我们会学习如何从PHP连接到MySQL的服务器,如何使用PHP访问数据库中存储的数据,以及如何正确的向用户显示信息。步骤无论是通过MySQL命令行工具,还是通过PHP,执行一个查询的基本步骤都是一样的:连接到数据库选择要使用的数据库创建SELECT语句执行查询显示结果我们将逐一介绍如何用PHP和PEAR的函数完成上面的每一步。资源当连接到MySQL数据库的时候,你会使用到两个新的资源。第一个是连接的标识符,它记录了一个活动连接用来连接到数据库所必需的所有信息。另外一个资源是结果资源,它包含了用来从一个有效的数据库查询结果中取出结果所需要的所有信息。本章中我们会创建并使用这两种资源。使用PHP函数查询数据库本节我们会介绍如何使用PHP连接MySQL数据库。这非常简单,我们会用一些例子说明。但是之前我们应该稍微了解一下幕后发生的事情。当你试图连接一个MySQL数据库的时候,MySQL服务器会根据你的用户名和密码进行身份认证。PHP为你建立数据库的连接,你可以立即开始查询并得到结果。我们需要同样的信息来连接数据库:数据库服务器的IP地址数据库的名字7用户名密码在开始之前,首先使用MySQL的命令行客户端确认你登录到数据库。创建SELECT语句发生在第三个函数调用之前。它是通过普通的PHP代码,而不是MySQL特定的PHP函数完成的。包含数据库登录细节我们先创建一个文件,用来保存登录MySQL所用到的信息。我们建议你把这些信息放在单独的文件里然后通过include来使用这个文件。这样一来如果你修改了数据库的密码。无论有多少个PHP文件访问数据库,你只需要修改这一个文件。连接到数据库我们需要做的头一件事情是连接数据库,并且检查连接是否确实建立起来。通过include包含连接信息的文件,我们可以在调用mysql_connect函数的时候使用这些变量而不是将这些值写死在代码中。我们使用一个叫做db_test.php的文件,往其中增加这些代码段。诊断连接错误你可能遇到的一个错误是:Fatalerror:Calltoundefinedfunctionmysql_connect()inC:ProgramFilesApacheSoftwareFoundationApache2.2htdocsdb_test.phponline4这个错误发生的原因是下载安装的PHP5.x默认没有包括对MySQL的支持。解决这个问题需要将php_mysql.dll文件从PHP压缩包例的ext/目录复制到C:/php,并修改C:WINDOWSphp.ini文件,确保下面两行没有被注释掉(注释的方法在行首使用分号)。extension_dir=c:/PHP/ext/extension=php_mysql.dll这样PHP扩展的目录就被设为C:PHP,MySQL的扩展也会被使用。在编辑php.ini文件的时候,你可以使用编辑器的搜索功能来检查这两行是否已经存在,只是需要去掉注释,并且需要重新输入。重新启动Apache,这样MySQL的支持就会被打开了。选择数据库建立连接之后,下一步就是使用mysql_select_db来选择我们要用的数据库。它的参数有两个:数据库名和可选的数据库连接。如果不指定数据库连接,默认使用上一条mysql_connect所建立的连接。/Selectthedatabase$db_select=mysql_select_db($db_database);8if(!$db_select)die(Couldnotselectthedatabase:.mysql_error();同样的,每次访问数据库的时候最好能检查可能的错误并且进行显示。现在我们做好了一切准备工作,可以开始执行SQL查询了。构建SQLSELECT查询构建SQL查询非常容易就是将一个字符串赋值给变量。这个字符串就是我们的SQL查询,当然我们要给出有效的SQL查询,否则执行这个查询的时候MySQL会返回错误。我们使用$query作为变量名,这个名字对应其目的,你也可以选择任何你喜欢的变量名。这个例子中的SQL查询是”SELECT*FROMbooks”。你可以使用字符串连接操作符(.)来构建查询:执行查询使用mysql_query函数来告诉数据库执行查询。它有两个参数:查询和可选的数据库连接,返回值是查询结果。我们将查询结果保存在一个变量里,也许你已经猜到我们要用变量名就是$result。这里同样有必要检查mysql_query的返回值不是FALSE来确保查询字符串和数据库连接都没有问题。当数据库查询的时候,所有的结果构成一个结果集。这些结果跟使用mysql命令行客户端执行同样查询所得到的行一致。要显示这些结果,你需要依次处理这些行。取结果并显示使用mysql_fetch_row从结果集中取出一行,它的用法如下:arraymysql_fetch_row(resource$result);它的参数是SQL查询返回的结果,我们将结果保存在$result中。每次调用它返回一行数据,直到没有数据为止,这时候它返回FALSE。这样,我们可以使用一个循环,在循环内调用mysql_fetch_row并使用一些代码来显示每一行。结果行的所有列都保存在一个数组里,可以方便地进行访问。变量$result_row2访问结果行的第二个属性(数组的顺序是查询是定义的列的顺序,如果使用SELECE*,那么数组顺序就是表的列的顺序)。取结果的方式去结果的方式不止一种。使用mysql_fetch_arrry可以一次性将所有结果放在一个数组里。它的参数是查询结果和一个可选的结果绑定方式。如果绑定方式指定为MYSQL_ASSOC,数组中的结果则使用查询中列的名字进行访问。如果指定了MYSQL_NUM,那么就使用从0开始的数字来访问结果。默认使用的方式是9MYSQL_BOTH,这样返回的数组支持两种类型的访问。Mysql_fetch_assoc是使用MYSQL_ASSOC取结果的另外一种方式。关闭连接绝大部分情况下,我们在使用完一个数据库之后要关闭到它的连接。使用mysql_close来关闭一个数据库,它会告诉PHP和MySQL这个数据库连接已经不再使用,所使用的所有资源和内存都可以释放。mysql_close($connection)10第3章需求分析3.1概述软件的需求分析是从用户的业务中提取出软件系统能够帮助用户解决的业务问题,通过对用户业务问题的分析,规划出我们的软件产品。这个步骤是对用户业务需求的一个升华,是一个用户业务管理流程优化,转化为软件产品,从而提升管理而实现的质的飞跃,这一步是否成功,直接关系到开发出来的软件产品能否得到用户认可,顺利交付给客户,客户能否真正运用我们的产品帮助他解决业务或管理问题1王家华软件工程M东北大学出版社2001年3月303页。3.2功能需求为了系统的各模块能够正常使用、系统更加人性化,还为了满足系统的实用性及安全性,本系统包含5个角色:游客,普通会员,版主,管理员,超级管理员。游客的各项功能:1、可以看帖2、不能发帖3、不可以回帖4、只有注册了以后成为本论坛的以后,才可以执行完整的普通会员功能。普通会员的各项功能:1、用户登录2、发贴3、查看帖子4、发表评论5、修改个人资料版主的各项功能:1、修改本版块2、查看版主信息3、修改版主信息4、查看帖子5、管理本版块的帖子6、版主拥有普通会员所有功能管理员的各项功能:1、用户管理2、新闻管理3、板块管理4、帖子管理5、评论管理6、其他所有功能超级管理员的各项功能:1、用户管理112、新闻管理3、板块管理4、帖子管理5、评论管理6、添加用户7、其他所有功能3.3数据需求普通会员可以不登录进入系统,系统用户的数据包括用户名、用户密码、用户类型等等。用户ID在整个系统中是唯一的。用户浏览帖子时,数据应当包括用户名、帖子主题。用户根据某一主题可以发表帖子,发表帖子需要的数据包括用户名、Email、版块分类名、发表帖子标题、发表帖子内容。用户回复帖子的数据包括用户名、Email、回复帖子序号、回复的内容、版块分类名。管理员进入后台管理时,需要数据包括管理员ID、管理员密码。用户只有登录了才能发帖,回帖,管理等等。3.4系统实体联系图(E-R图)E-R模型的基本概念:ER图概念化地构建实体间关系的模型,这使得它们区别于数据库模型图。ER图的理念是:项目所有参与者能理解ER图。ER图由不同实体类型、关系、特性和类型构成。实体是诸如用户的实际对象,有时更抽象,但必须有业务意义。特性用于描述实体,关系用于实体之间(1)实体:现实世界中的事物;(2)属性:事物的特性;(3)联系:现实世界中事物间的关系。实体集的关系有一对一、一对多、多对多的联系。E-R模型是对现实世界的一种抽象。它的主要成分是实体、联系和属性。使用这三种成分,我们可以建立许多应用环境的E-R模型。现在划出本系统所使用的数据库实体,它们分别为帖子实体、回复贴实体、版面实体、类别实体和用户实体。下面将介绍几个关键实体的E-R图。1帖子实体根据实体包括编号、所属版面、标题、内容、发布者、发布时间、表情、对贴子进行操作的时间、是否为置顶贴子、被置顶的时间、是否为精华贴子和被设置为精华贴子的时间等属性。其中是否为置顶贴子与是否为精华贴子属性分别用来标识贴子是否被设置为置顶或是精华贴子,1表示“是”,0表示“否”。帖子实体的E-R图如图3.1所示。12贴子内容标题所属版面编号表情发布者发布时间阅读次数回复次数图3.1贴子实体E-R图2回复贴实体回复贴实体包括编号、帖子ID、标题、内容、回复者、回帖时间和表情属性。回复贴实体的E-R图如图3.2所示。13回复贴内容原帖号楼层编号回复IP回复者回帖时间间图3.2回复贴实体E-R图ER模型的“联系”用于刻画实体之间的关联。一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。若有联系,进一步确定是1:n,m:n,还是1:1等。还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系等等。3.本系统的ER模型如图3.3所示:图3.3ER模型图主题帖子所属回复帖子对应版块1nm1用户管理员浏览管理mnmn143.5数据流图图3.4用户流程图图3.5管理员数据流程图普通用户进入聊天室设置聊天细则新闻浏览模块新闻类型首页区域目录进入板块用户登录修改模块管理员登录后台模块D1管理员D2帖子管理D2分类管理D2网站管理帖子增删改查分类信息网站内容用户进行聊天新闻内容分类搜索页面修改成功页面15第4章总体设计4.1系统功能模块划分本论坛系统主要分为前台模块和后台模块。前台模块包含版面浏览模块、用户模块、文章模块、热门新闻以及留言板模块。而后台模块包含了辅助系统、核心模块管理、文章管理模块、栏目管理和用户管理模块。系统功能模块图如图4.1所示。图4.1系统功能模块图4.2系统业务流程图本系统的业务流程是由浏览者进入浏览板块,再从浏览板块进入论坛帖子板块,在注册登录后浏览者身份会变成用户会员,再以用户身份实现搜索,浏览帖子,发帖子和回复帖子等功能。用户被管理员所管理,管理员除了可以管理用户,同时还具备管理帖子和管理板块等功能。具体的系统业务流程图如图4.2所示。16浏览者用户注册登录搜索管理版块浏览版块管理用户发帖浏览帖子回帖管理帖子管理员图4.2系统业务流程图17第5章数据库设计5.1数据库分析数据库的设计,在程序的开发中起着至关重要的作用,它往往决定了在后面的开发中进行怎样的程序编码。一个合理、有限的数据库设计可降低程序的复杂性,使程序开发的过程更为容易。本系统是一个中型的供求信息网站,考虑到开发成本、用户信息量客户需求等问题,决定采用MySQL作为项目中的数据库。5.2数据库设计根据数据库概念设计,可以创建与实体对应的数据表。本系统中所包含的数据表的结构图如图5.1所示。图5.1db_luntan数据库所包含的数据表结构图本系统共包含8个数据表,下面分别介绍这些表的结构。181block(板块表)板块表用来记录板块信息,该表的结构如表5.1所示。表5.1block表的结构字段名数据类型是否为空是否主键默认值描述block_idint(2)NoYes板块ID(自动递增)block_namevarchar(30)YesNULL板块的名称user_idint(10)YesNULL板块的版主block_numberint(10)YesNULL板块帖子数block_bulletinvarchar(200)YesNULL板块公告block_explainvarchar(200)YesNULL板块说明block_iconvarchar(100)YesNULL板块图标2collection(收藏表)收藏表用来据库用户收藏帖子的信息,该表的结构如表5.2所示。表5.2collection表的结构字段名数据类型是否为空是否主键默认值描述collection_idint(10)NoYes收藏ID(自动递增)post_idint(10)YesNULL收藏帖子的ID值user_idint(10)YesNULL收藏者ID3count(计数表)计数表用来存储访本站问次数的信息,该表的结构如表5.3所示。表5.3count表的结构字段名数据类型是否为空是否主键默认值描述countint(10)NoYes收藏ID(自动递增)4news(新闻

温馨提示

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

评论

0/150

提交评论