![基于PHP框架的社区论坛管理系统的设计与实现毕业论文_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-3/16/8ce39985-9c49-49fb-af0d-047dd709765d/8ce39985-9c49-49fb-af0d-047dd709765d1.gif)
![基于PHP框架的社区论坛管理系统的设计与实现毕业论文_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-3/16/8ce39985-9c49-49fb-af0d-047dd709765d/8ce39985-9c49-49fb-af0d-047dd709765d2.gif)
![基于PHP框架的社区论坛管理系统的设计与实现毕业论文_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-3/16/8ce39985-9c49-49fb-af0d-047dd709765d/8ce39985-9c49-49fb-af0d-047dd709765d3.gif)
![基于PHP框架的社区论坛管理系统的设计与实现毕业论文_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-3/16/8ce39985-9c49-49fb-af0d-047dd709765d/8ce39985-9c49-49fb-af0d-047dd709765d4.gif)
![基于PHP框架的社区论坛管理系统的设计与实现毕业论文_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-3/16/8ce39985-9c49-49fb-af0d-047dd709765d/8ce39985-9c49-49fb-af0d-047dd709765d5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 密级: 基于PHP框架的社区论坛管理系统的设计与实现Research Php BBS Forum Management System Based on Yii Framework摘 要社区论坛管理系统是互联网上的一种电子信息效劳系统。每个用户都可以在在论坛上提出自己的想法。近些年来,通过编程人员和很多爱好者的努力,BBS论坛的功能得到了很大的扩充。而如今的BBS论坛系统功能更丰富,允许用户之间分享工具软件,技术文档等资源。如何设计稳定的BBS系统,是每个开发人员必须要考虑的问题,一个成功的BBS系统可大大提高承载此论坛的网站点击率,为了使一个论坛系统发挥更大的作用,使企业的用户参加到产品、效
2、劳等内容的讨论上来,对企业的开展有很好的促进作用。论文介绍了课题研究的背景和意义及国内外开展状况,详细介绍了课题采用的相关技术。结合用户业务根本要求,进行了详细的分析研究,确定该系统主要功能包括七大模块:个人用户管理功能、论坛内容展示功能、会员管理与维护功能、分区管理与维护功能、板块管理与维护功能、文章管理功能和回帖管理功能。本文较为详尽的阐述了主要功能模块的实现过程。本系统使用Zend Studio集成开发环境编写,并使用基于MVC模式的Yii框架技术进行开发。利用Sphinx全文检索引擎实现文章搜索。系统前台数据采用文件缓存和Memcache缓存技术,可以大大提高用户体验。后台数据库使用甲
3、骨文公司的Mysql数据库,利用SQLyog实现对数据库的管理和操作。在以面向对象的程序设计技术为指导思想的前提下,完成了本系统的具体实现过程。系统解决了大访问量下对网站的压力,对使用该系统的企业开展有很好的辅助作用。关键词:论坛管理系统;全文检索;Sphinx;Memcache;MysqlAbstractCommunity Community forum management system is an electronic information service system on the Internet. Every user can put forward his ideas in t
4、he forum. In recent years, through the programming of personnel and many enthusiasts, the function of the forum BBS has been greatly expanded. And today's BBS forum system features richer, allowing users to share between the tools and software, technical documentation and other resources. How to
5、 design the stability of the BBS system, each developer must consider the problem, a successful BBS system can greatly improve the bearing of this forum website click rate, in order to make a forum system play a greater role, the enterprise user added to the products, services, and other content are
6、 discussed, the development of enterprises has a good role in promoting.This paper introduces the background and significance of the research and the development of the domestic and foreign, and introduces the technology of the subject. Combined with the business users basic requirements, detailed a
7、nalysis and research, identify seven modules: individual user management function, the content of the Forum display function, member management and maintenance functions, partition management and maintenance functions, sector management and maintenance functions, article management function and repl
8、ies management function, including the main function of the system. This paper expounds the realization of the main function modules in detail.This system uses Studio Zend integrated development environment, and uses the Yii framework technology based on MVC mode to develop. Use Sphinx full-text sea
9、rch engine to achieve the article search. System foreground data using file caching and Memcache caching technology can greatly improve the user experience. Database using the Oracle Corp Mysql database, using SQLyog to achieve the database management and operation. In the premise of the object orie
10、nted programming technology, the concrete realization of the system is completed. The system has solved the pressure of the website under the large amount of visit, and has good assistant for the development of the enterprise.Keyword: Forum management system; full-text search; Sphinx; Memcache; Mysq
11、l目 录摘 要IAbstractII目 录IV第 1 章 引 言- 1 - 系统开发背景- 1 - 国内外开展状况- 2 - 国内方面- 2 - 国外方面- 2 - 研究内容及目标- 3 -第 2 章 相关技术综述- 4 -2.1 Zend Studio- 4 -2.2 Yii框架- 5 -2.3 Sphinx- 5 -2.4 UEditor- 5 -第 3 章 系统分析与设计- 7 - 系统分析- 7 - 系统运行环境- 7 - 系统平安性- 8 - 系统通用性- 8 - 功能设计- 8 - 数据库设计- 10 -关键问题讨论- 13 -数据库设计- 13 -访问量大时的解决方法- 13 -
12、搜索功能- 13 -第 4 章 系统功能详细实现- 14 - 个人用户管理功能- 14 - 论坛内容展示功能- 16 - 会员管理功能- 19 - 添加会员功能- 19 - 会员管理功能- 22 - 分区管理功能- 25 - 添加分区- 26 - 分区管理- 28 - 版块管理功能- 30 - 添加版块- 30 - 版块管理- 32 - 文章管理功能- 35 - 查看文章列表- 35 - 删除文章- 36 - 回帖管理功能- 37 - 查看帖子列表- 37 - 删除回帖- 39 -第 5 章 结 论- 40 -参 考 文 献- 41 -致 谢- 42 -第 1 章 引 言在现在快速开展的社会,
13、互联网技术得到更快的开展,已经不是日新月异就能形容的信息化世界里,更加动态性、交互性与时速性的网络论坛成为其中最快速、最丰富和最自由的网络信息资源,也是最受广阔的现代人类欢送的信息交流方式之一。1.1 系统开发背景论坛管理系统是一种对某些问题、看法互相学习的系统,论坛系统的作用在于提供应用户彼此交流的空间,这种交流的方式浏览帖子和发表帖子以及回帖。因此对于帖子的管理是BBS系统的一个核心功能,发表帖子的权利可以只对特定的人群。互联网上的优质资源很多,我们每天都会接触到很多不同的优质资源,比方实用的网站,有用的资讯等等,大局部网站是利用PHP语言编写1。BBS是Bulletin board sy
14、stem的缩写,中文含义是电子公告板。它是一种交互性强,内容丰富而即使的Internet电子信息效劳系统。用户在BBS站点上可以获得各种信息效劳,发布信息,进行讨论,聊天等等。其界面一般是以文字为主,主要目的是为广阔网友提供一个彼此交流的空间,其最大的优点是自由平等,快捷互动。BBS最早是用来公布股市价格等类信息的,当时BBS连文件传输的功能都没有,而且只能在苹果计算机上运行。早期的BBS与一般街头和校园内的公告板性质相同,只不过是通过电脑来传播或获得消息而已。一直到个人计算机开始普及之后,有些人尝试将苹果计算机上的BBS转移到个人计算机上,BBS才开始渐渐普及开来。近些年来,由于爱好者们的努
15、力,BBS的功能得到了很大的扩充。而如今的BBS系统功能更丰富,允许用户之间分享工具软件,技术文档等资源。BBS论坛系统突破了地域和时间的限制,实现了全球性资源共享,有助于人们学习,工作,生活,同时提高了人们的交流信息、思想和解决问题的能力。如何设计、建立一个经济、实用、全面、高效、稳定的BBS系统,是每个开发BBS系统的程序员必须要考虑的问题,一个成功的BBS系统可大大提高承载此论坛的网站点击率,使企业的用户参加到产品、效劳等内容的讨论上来,起到收集反应资料的作用,对企业战略的开展有很好的参考作用。1.2 国内外开展状况1.2.1 国内方面中国大陆最早的BBS站是北京长城站,由于限于互联网尚
16、未开始普及的条件,当时用户访问量每天只有十几人。随着计算机及其外设的大幅度降价、互联网在国内的快速开展,BBS及Forum逐渐被认识,并以惊人的速度开展起来。大陆的BBS论坛在2000年到达一个开展顶峰,各种BBS站大量涌现,BBS论坛(续致信网上一页内容)功能不断改良,内容涉及领域几乎无所不包。此后,由于开展的无序和管理的不善,在网络泡沫的冲击之下,很多BBS论坛迅速消亡。之后,国内BBS论坛进入调整和成熟时期,成为现实社会的缩影。在历次?中国互联网络开展状况统计报告?中,BBS论坛仍然是国内互联网最重要的应用之一。多数研究者认为,BBS论坛简单,易用,实用的特点日益突出,今后BBS论坛将向
17、个性化和专业化的方向开展。1.2.2 国外方面社区论坛在国外最开始主要用于BBS成员之间的信息交流与网络通讯,那时还没有浏览器、搜索引擎,甚至没有个人网站。当时BBS主要有四项功能应用:发布新闻、发布交易信息、发布个人感想、互动式问答。目前在国外BBS的主要应用转移到论坛上,也就是现在为大多数人所接受的BBS概念。因此,互联网技术的开展,使得BBS在西方国家的影响力正逐渐减小,以美国为例,绝大多数高校根本上没有开设BBS,少数BBS站的存在主要用于提出或解决问题,集中表现为技术类BBS,针对软件或商品的技术支持BBS等。相比于人气极旺的中文BBS,它们并不存在复杂的管理机制和舆论调控行为。在这
18、些BBS上,注重的是发帖和回帖的就事论事,区别于中文BBS的人与人的交流。国外对BBS的直接研究很少,间接的研究主要集中在对网络社会、虚拟社区方面。如针对网络社会中的人际关系、行为方式、价值观念和社会结构等,对虚拟社区的自身特征及虚拟社区中的社会问题等进行广泛研究。著名的研究成果有曼纽尔·卡期特的?网络社会的崛起?、霍华德·莱茵戈德的?虚拟社区?、尼尔·巴雷特的?数字化犯罪?等。1.3 研究内容及目标本文主要先全面系统的分析BBS论坛管理系统的实际业务流程,然后进行模块化的设计,再然后针对实际业务中存在的难点问题提出了较好的解决方案,并对各系统功能进行了详细方案设
19、计。根据本系统的特点,可以将其分为前台和后台两个局部,前台主要包括用户个人管理和论坛内容展示两个局部,而后台主要包括会员管理,分区管理,板块管理,文章管理和回帖管理五个局部2。预期目标,管理员和会员可以在后台添加分区及板块等,普通用户可以在前台发表及回帖,以及最后系统上线。通过BBS论坛的方式,使用者可以在论坛上发布各项通知,可以让用户,游客能够及时准确的了解想要了解的动态,同时通过交流平台能够展示每一个用户的各种能力,发布个人对一些事物的看法,增强人与人之间,团体与团体之间,个人与团体之间的互动交流。 系统中的主要代码使用Sublime Text3编写,主要采用的语言是PHP。符合MVC架构
20、3,本网站采用现在很流行的B/S开发模式,采用Yii框架进行开发,与MySQL数据库高性能组合,完全可以满足上述功能的需求,软件界面简易,流程合理,结构清晰,满足用户视觉使用习惯。易使用和维护等,将实施本钱降到了最低。对软件使用与实施具重要意义。由于本系统采用PHP语言开发,代码编写符合在Linux下的编写要求。因此可以运行在任何环境下,包括:Windows、Linux和Unix等主流操作系统。系统的设计以方便未来业务的扩展和系统扩充为目标,系统要求能够方便的升级,充分保护系统的投资。论坛系统的研究目标是前台对所有的数据进行展示,以及利用网络文本编辑器实现发帖和回帖。搜索功能利用斯芬克斯检索。
21、后台分区、版块和文章的管理。和该系统要完成无限分类对分区和板块的改善。以及RBAC对权限进行分配4。第 2 章 相关技术综述本系统使用Zend Technologies公司开发的PHP语言集成开发环境Zend Studio。主要是使用基于MVC模式的YII框架进行开发。后台数据库是目前属于Oracle公司的Mysql数据库。利用Sqlyog数据库管理工具实现对数据库的管理和操作。系统前台文章搜索功能是一个基于SQL的全文检索引擎Sphinx。Sphinx单一索引最大可包含1亿条记录,在1千万条记录情况下的查询速度为毫秒级5。系统编辑文字运用了所见即所得的开源富文本编辑器UEditor,具有轻量
22、、可定制、用户体验优秀等特点。2.1 Zend StudioZend Studio是Zend Technologies开发的PHP语言集成开发环境IDE)。也支持HTML和js标签,但只对PHP语言提供调试支持。它包括了PHP所有必须的开发部件。通过一整套编辑、调试、分析、优化和数据库工具,Zend Studio 加速开发周期,并简化复杂的应用方案。Zend Studio支持PHP语法加亮显示,支持语法自动填充功能,支持书签功能,支持语法自动缩排和代码复制功能,内置一个强大的PHP代码调试工具,支持本地和远程两种调试模式,支持多种高级调试功能6。Zend Studio可以在Linux、Wind
23、ows、Mac OS X上运行。Zend Studio的强大之处,除了一般编辑器所具有的代码高亮,语法自动缩进,书签功能外,它内置的调试器更是无可挑剔,支持本地和远程debug server两种调试模式,支持诸如跟踪变量、单步运行、断点、堆栈信息、函数调用、查看实时输出等多种高级调试功能。通过完全的PHP5支持、编码分析器、编码组合功能、语法检索、工程管理器、编码编辑器、绘图调试器向导。超强智能编码:具备新的和更优秀的分析和优化工具像PHP编码检测器,。PHP的标准记录工具-PHP文档记录器:非常容易记录PHP代码、程序应用和方案。FTP和SFTP组合简化配置,使开发者平安地从远程效劳器灵活的
24、上载和下载工程文件。2.2 Yii框架7。通过一个简单的命令行工具 yiic 可以快速创立一个web应用程序的代码框架,开发者可以在生成的代码框架根底上添加业务逻辑,以快速完成应用程序的开发。 Yii 具有高度的可重用性和可扩展性,是纯粹的面向对象的。Yii中的一切都是独立的可被配置,可重用,可扩展的组件。更重要的是Yii有着越来越多的扩展库。这可能有助于大大减少开发时间。2.3 SphinxSphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语
25、言设计搜索API接口,如PHP,Python,Perl,Ruby等,同时为MySQL也设计了一个存储引擎插件8。Sphinx单一索引最大可包含1亿条记录,在1千万条记录情况下的查询速度为0.x秒毫秒级。Sphinx创立索引的速度为:创立100万条记录的索引只需 34分钟,创立1000万条记录的索引可以在50分钟内完成,而只包含最新10万条记录的增量索引,重建一次只需几十秒。2.4 UEditorUEditor是一种轻量、可定制开源富文本编辑器,开源基于BSD协议,所有源代码在协议允许范围内可自由修改和使用。百度UEditor可以帮助不少网站开发者在开发富文本编辑器所遇到的难题,节约开发者因开发
26、富文本编辑器所需要的大量时间。UEditor中所有的功能型实现都是通过命令插件层中的命令和插件来完成的,并且各个命令和插件之间根本互不耦合使用者需要使用哪个功能就导入哪个功能对应的命令或者插件文件,完全不用考虑另外那些杂七杂八的JS文件。理论上来讲,所有的命令都是可以用插件来代替的,但是依然将两者分开的主要原因是命令都是一些静态的方法,无需随editor实例初始化,从而优化了编辑器的性能。而插件随编辑器的初始化而初始化,性能上会有少许的影响,但相比命令而言,插件能够完成更加复杂的功能。其中最主要的一个特点是在插件内部既可以为编辑器注册命令,也可以为编辑器绑定监听事件。这个特点使得为编辑器添加任
27、何功能都可以在插件中独立完成。第 3 章 系统分析与设计具体而又详细的系统分析与设计是很重要的环节,是详细设计成败的重要根底和必要条件。一个BBS论坛可以大致分为以下流程:用户登录进入论坛一半为游客,有时候注册为会员,就某个话题展开讨论。通过发帖功能发布新的话题,通过回帖功能回复已有的话题,通过搜索功能查找已有的话题。管理员通过功能创立、编辑、删除论坛的版块,管理帖子。这样的流程决定了BBS论坛系统的需求与设计。3.1 系统分析论坛管理系统最重要的就是前台浏览论坛和后台管理论坛数据两局部,本系统对两局部的架构都做了详细的设计,前台主要包括用户个人管理和论坛内容展示两个局部,而后台主要包括会员管
28、理,分区管理,板块管理,文章管理和回帖管理五个局部。从硬件上讲,计算机硬件的速度现在已经不是问题,大容量高速度的硬盘十分普遍了,同时网络速度的提高,这些为系统的运行打下了坚实的根底。从软件的角度上讲,数据库技术也已经相当成熟,比方本系统所用处理能力很强的Mysql数据库,同时基于Yii框架进行开发,将试图、模型已经进行了分层,减少了耦合,提高了代码的重用性。3.2 系统运行环境本系统运行环境是WAMP,也就是采用B/S 结构,即大家熟知的客户机和效劳器结构。Apache是最通用的网络效劳器;Mysql是带有基于网络管理附加工具的关系数据库;PHP是流行的对象脚本语言,它包含了多数其它语言的优秀
29、特征来使得它的网络开发更加有效9。开发者在Windows操作系统下使用这些Linux环境里的工具称为使用WAMP。B/S一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心局部集中到效劳器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器,如Internet Explorer,效劳器安装SQL Server、Oracle、MYSQL等数据库。浏览器通过Web Server 同数据库进行数据交互10。3.2.1 系统平安性用户登录密码采用MD5加密算法。保证用户在登录时更加的平安。密码同时也不易遗失。系统所有操作数据库采用PDO,PDO扩展
30、为PHP访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据。PDO类能防止SQL注入,使网站系统更加健壮11。登录论坛系统时添加验证码功能,验证码一般是防止批量注册的,人眼看起来都费力,何况是机器。像百度贴吧未登录发贴要输入验证码大概是防止大规模匿名回帖的发生目前,不少网站为了防止用户利用机器人自动注册、登录、灌水,都采用了验证码技术。3.2.2 系统通用性本系统代码编写严格符合在Linux下要求,因此在Linux下也能正常运行,通常系统最后发布都要发布在Linux系统下12。3.3 功能设计结合目前互联网各
31、大论坛核心业务的分析,制定BBS论坛管理系统建设方案。经过详细的分析和研究,确定该系统在结构上根本上分为:论坛前台和论坛后台管理两局部。功能设计上本系统主要包括七大功能:个人用户管理功能、论坛内容展示功能、会员管理功能、分区管理功能、版块管理功能、文章管理功能和回帖管理功能。每个大的功能模块下又细分出具体的小的功能模块。个人用户管理功能:用户访问论坛首页进行登录,没有账号可以进行注册,然后进入论坛添加用户的详细信息,包括头像,邮箱等等,以及对所有表单数据的验证。论坛内容展示功能:(1)发帖和回帖功能:用户对自己感兴趣的板块可以发表文章或者进行回帖。该系统采用UE编辑器,使发表文章时有更加丰富的
32、内容。(2)浏览帖子功能:在顶级分区下模块区可以查看对应模块下的文章及回帖总数,及文章和回帖的最后发表时间。在文章详细页面可以查看每个用户的头像等详细信息。会员管理功能:管理员可以添加会员,对会员的个人信息进行管理,删除会员。会员也可以添加分区及板块分区管理功能:管理员可以添加分区,对分区进行操作。删除分区时,如果该分区下面有板块,那么要先完成删除该分区下的板块。版块管理功能:管理员可以添加板块,对版块进行操作。删除板块时,如果该板块下有文章,那么要先完成删除该板块下的文章。文章管理功能:管理员对前台用户发表的文章进行管理,对不符合论坛要求的相关内容进行删除。回帖管理功能:管理员对前台游客以及
33、会员回帖进行管理,对不符合论坛要求的回复进行删除。BBS论坛故管理系统个人用户管理功能分区 管理功能会员管理功能论坛内容展示功能版块管理功能回帖管理功能文章管理功能图3-2 概要设计功能模块图3.4 数据库设计数据库设计是工程开发中的系统设计中非常重要的一个关键环节,之所以强调数据库的重要性,是因为如果设计不好,在后来的系统维护、变更和功能扩充时,甚至在系统开发过程中,将会引起比拟大的问题,会遇到非常大的困难,大量工作将会重新进行。下面介绍本系统中几个重要的表。用户信息表(bbs_user)主要是存储系统用户的相关信息以及使用权限,只用在这个表中存在的用户并且有一定权限才能登录到系统的后台业务
34、界面,表中没有权限的用户只能查看本论坛系统的前台展示局部,展示局部也可以登录的,论坛系统最重要的就是用户,所以用户根本信息表的设计十分重要,用户根本信息表的设计如表3-1所示。表3-1 用户信息表序号数据库字段 类型 存储内容1Id整型用户ID2Username字符串用户名3Password字符串 用户密码4Rtime整型注册时间5Rip整型注册IP6Isadmin枚举用户权限用户详细信息表(bbs_profile)存储每个用户的详细信息,包括用户的昵称、邮箱、头像等,用户详细信息表结构设计如表3-2所示。表3-2 用户详细信息表序号数据库字段 类型存储内容1Uid整型用户ID2Age整型年龄
35、3Sex枚举性别4Tname文本用户昵称5Email文本邮箱6Edu枚举学历7Signed文本个性签名8Face文本头像论坛分区表(bbs_part)存储的是论坛所有分区信息,字段主要包括分区ID和分区名称。用户详细信息表结构设计如表3-3所示。表3-3 论坛分区表序号数据库字段 类型存储内容1Id整型分区ID2Name文本分区名称论坛版块表(bbs_category)存储的是论坛所有分区下版块信息,字段主要包括版块ID和版块名称。论坛版块表结构设计如表3-4所示。表3-4 论坛版块表序号数据库字段 类型存储内容1Id整型分区ID2Name文本分区名称3Pid整型所属分区ID文章表(bbs_a
36、rticle)存储论坛所有文章信息,包括文章的标题、内容、发布时间等,文章表结构设计如表3-5所示。表3-5 文章表序号数据库字段 类型存储内容1Id整型文章ID2Title文本文章标题3Content文本文章内容4Uid整型文章作者ID5Cid整型所属版块ID6Pubtime整型发布时间文章评论表(bbs_comment)存储论坛所有文章的评论信息,包括评论人、评论内容等,评论表结构设计如表3-6所示。表3-6 评论表序号数据库字段 类型存储内容1Id整型评论ID2Content文本评论内容3Uid整型发布人的ID4Aid整型所属文章5Pubtime整型 发布时间关键问题讨论根据论坛系统的需
37、求和功能,对数据库的设计进行了全面分析,数据库选择用Mysql数据库,Mysql数据库中有Innodb,myisam等几种引擎,论坛系统多为插入操作,所以选择Innodb引擎13,在前后台的操作中,对经常操作的字段添加索引,比方在文章表中的作者ID和所属版块ID中添加普通索引。一个比拟复杂的应用系统,其对应的数据库表往往以千计。假设让数据库管理员看到对象名就了解这个数据库对象所起的作用,恐怕会比拟困难。而且在数据库对象引用的时候,数据库管理员也会为不能迅速找到所需要的数据库对象而头疼。为此,制定一个数据库对象的前缀BBS。数据库设计符合范式。为各表之间添加必要的关联外键。方法当系统中用户特别多
38、的时候,每次都向数据库效劳器中请求数据,这样的方案不利于网站以后的开展,对经常访问的页面进行文件缓存和内存缓存。内存缓存采用Memcache。缓存是在磁盘或者内存中临时存储数据的一块区域。使用缓存可以提高效率,尽量减少对数据库的压力,提高页面相应速度14。Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。论坛系统中一定有搜索功能,以前的搜索大多利用Sql语句实现,但是当系统用户特别多的时候,频繁的进行
39、数据库操作,会给数据库效劳器带来很大的压力,本系统采用Sphinx全文检索实现系统的搜索功能15,Sphinx单一索引最大可包含1亿条记录,在1千万条记录情况下的查询速度为0.x秒毫秒级。Sphinx创立索引的速度为:创立100万条记录的索引只需 34分钟,创立1000万条记录的索引可以在50分钟内完成,而只包含最新10万条记录的增量索引,重建一次只需几十秒。第 4 章 系统功能详细实现本章详细介绍了如何开发BBS论坛管理系统,以及七大功能模块的功能描述和操作方法,并对各大功能模块的实现过程进行了详尽的阐述。4.1 个人用户管理功能本小节主要介绍的是在开发个人用户管理功能模块过程中所遇到的问题
40、,以及解决问题的方法,即实现方法。(1)问题描述没有注册成用户的可以进行注册,已经注册成功的管理自己的信息,其中头像在论坛中要显示三种大小的,其中小头像是在浏览页中显示,中等大小头像是在文章中显示,大头像可以在系统以后的完善中做插件修改头像使用。(2)实现方法前台修改用户个人信息界面如图4-1所示。图4-1 个人详细信息编辑界面不同大小头像需要编写产生缩略图的类,首先翻开extension=php_gd2.dll扩展,重启apache效劳器,其代码实现如下:class Zoomstatic function savePath($sPath,$toW,$toH,$savePath,$prefix
41、="s_")$i=imagecreatetruecolor($toW,$toH);$white=imagecolorallocate($i, 255, 255, 255);imagefill($i,0,0,$white);$arr=getimagesize($sPath);$sW=$arr0;$sH=$arr1;$sType=$arr'mime'switch($sType)case 'image/jpeg':case 'image/pjpeg':$funName="jpeg"break;case '
42、image/gif':$funName="gif"break;case 'image/png':$funName="png"break;default:return false;$trueFunName="imagecreatefrom".$funName;$s=$trueFunName($sPath);$biliW=$sW/$toW;$biliH=$sH/$toH;if($biliW>=$biliH)$trueBili=$biliW;else$trueBili=$biliH;$trueW=$sW/$tr
43、ueBili;$trueH=$sH/$trueBili;$toX=($toW-$trueW)/2;$toY=($toH-$trueH)/2;imagecopyresized($i,$s,$toX,$toY,0,0,$trueW,$trueH,$sW,$sH);$fileArr=explode("/",$sPath);$oldName=end($fileArr);$newName=$prefix.$oldName;$saveFunName="image".$funName;return $saveFunName($i,$savePath."/&q
44、uot;.$newName);4.2 论坛内容展示功能用户对自己感兴趣的板块可以发表文章或者进行回帖。该系统采用UE编辑器,使发表文章时有更加丰富的内容。在顶级分区下模块区可以查看对应模块下的文章及回帖总数,及文章和回帖的最后发表时间。在文章详细页面可以查看每个用户的头像等详细信息。其实从系统开始运行开始,系统就会判断缓存中是否有该首页信息,如果有直接加载缓存。系统首页局部截图如图4-2所示。在系统首页中,有六大分区,每个分区下对应不同的版块,用户点击某分区下的版块可以查看该版块下有什么文章,例如点击后端开发中的PHP。系统界面如图4-3所示。用户点击该版块下的某个文章,可以查看文章内容及评论
45、,也可以发表评论,以及在该版块下发表文章。例如点击文章的缓存原理文章,系统界面如图4-4所示。图 4-2 系统首页局部截图图4-3 系统登陆界面图4-4 浏览文章界面为提升用户体验,发帖采用了UEditor网络文本编辑器,用户发帖界面如图4-5所示。图4-5 发表文章界面4.3 会员管理功能管理员可以添加会员,对会员的个人信息进行管理,删除会员。会员也可以添加分区及板块。4.3.1 添加会员功能本小节主要介绍的是会员管理中的添加会员功能,以及这些功能是调用的那局部函数。(1) 功能描述由于论坛管理系统一个管理员对整个系统的管理过于繁忙,所以添加一个会员同样有管理员的权限和管理员协同工作。添加会
46、员界面如图4-6所示。图4-6 添加会员界面(2)程序实现Yii框架安装后,是以MVC模式开发的,下面的代码是Controller层的加添会员过程。首先实例化用户对象,指定场景为useradd,以便于编写规那么,然后验证,如果是真,那么插入数据库,最后恢复密码以及重复密码为空。public function actionAdd()$usermodel = new User(); $usermodel->scenario = 'useradd' if(!empty($_POST'User')$usermodel->attributes = $_POST
47、'User'if($usermodel->validate()$usermodel->password =md5($usermodel->password);$usermodel->rtime = time();$usermodel->rip = ip2long($_SERVER'REMOTE_ADDR'); $usermodel->isadmin = '1'if($usermodel->insert()$profilemodel = new Profile(); $profilemodel->ui
48、d = $usermodel->getPrimaryKey();$profilemodel->email = $_POST'User''email'if($profilemodel->insert()Yii:app()->user->setFlash('info','用户名添加成功');elseYii:app()->user->setFlash('info','用户名添加失败');elseYii:app()->user->setFlash(
49、9;info','用户名添加失败');$usermodel->password = ''$usermodel->repass = ''$this->render("useradd",array('model'=>$usermodel);和Controller层对应的View层有两种方式编写,可以运用常用的html方式编写,本系统代码采用Yii框架组件模式编写。<ul id="tabsmenu" class="tabsmenu">
50、 <li class="active"><a href="#tab1">会员管理</a></li> </ul> <div id="tab1" class="tabcontent"> <h3 align="center">添加会员</h3> <?php $form = $this->beginWidget('CActiveForm') ?> <div class=
51、"form"> <div class="form_row"> <?php echo $form->labelEx($model,'username') ?><?php echo form->textField($model,'username',array('class'=>'form_input') ?> </div> <div class="form_row"> <?php ec
52、ho $form->labelEx($model,'password') ?> <?php echo $form->passwordField($model,'password',array('class'=>'form_input') ?> </div> <div class="form_row"> <?php echo $form->labelEx($model,'repass') ?> <?php echo
53、 $form->passwordField($model,'repass',array('class'=>'form_input') ?> </div> <div class="form_row"> <?php echo $form->labelEx($model,'email') ?> <?php echo $form->emailField($model,'email',array('class'=>
54、;'form_input') ?> </div> <div class="form_row"> <input type="submit" class="form_submit" value="添加" /> </div> <?php $form = $this->endWidget('CActiveForm') ?> <div class="clear"></div> &
55、lt;?php echo $form->error($model,'username'); echo $form->error($model,'password'); echo $form->error($model,'repass'); echo $form->error($model,'email'); if(Yii:app()->user->hasFlash('info') echo Yii:app()->user->getFlash('info'
56、;); ?> </div> </div>该过程Validate方法验证成功,验证失败返回假,如果验证失败,我们需要将失败的错误信息显示到模板当中4.3.2 会员管理功能 本小节描述了会员管理功能,主要是编辑会员信息和删除会员,还有分页显示会员列表。主要阐述系统运行流程以及管理的具体代码实现。(1)功能描述分页显示所有会员。会员不仅能够在前台发帖,还能进入后台进行管理,在后台能够编辑会员的详细信息,和删除某会员。操作过程如图4-7,4-8所示。图4-7 会员编辑界面图4-8 会员分页显示界面(2)程序实现我们主要利用Page组件实现分页,首先实例化User对象和cr
57、iterria容器,然后统计总条数,实例化分页类,设置每页显示多少条,进行limit截取其代码如下。public function actionIndex()$usermodel = User:model();$criteria = new CDbCriteria();$usermodel->count('isadmin=:isadmin',array(':isadmin'=>'1'); $criteria->condition = 'isadmin=:isadmin'$criteria->params =
58、 array(':isadmin'=>'1');$total = $usermodel->count($criteria); $page = new CPagination($total); $page->pageSize= 2; $page->applyLimit($criteria);$users = $usermodel->findAll($criteria);$data = array('users'=>$users,'pages'=>$page);$this->render('userlist',$data);修改会员信息功能,根据用户的ID,先查询出当前用户的所有信息,其中修改头像时要调用文件上传类,生成三张不同大小的图片,然后在此根底信息上进行修改。public function actionMod()$profilemodel = Profile:model();$id = $_GET'id'$data = $profilemodel->find('uid=:uid',array
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 清明节品牌市场分析模板
- 探索管理学新境界
- 银行数字化转型路演模板
- 2025年高导热石墨膜项目合作计划书
- 小学感恩教师主题活动方案
- 扶贫搬迁申请书
- 辅导班申请书范文
- 事故申请书范文
- 多媒体技术在小学语文阅读教学中的应用研究
- 三年级数学五千以内加减法题同步作业口算题大全附答案
- 比亚迪新能源汽车远程诊断与故障预警
- 胚胎植入前遗传学诊断
- 2024届甘肃省兰州市甘肃一中高一上数学期末联考试题含解析
- 初中体育篮球双手胸前传接球教案
- 物流基础培训资料
- 雷达原理-三-雷达接收机
- 公司股东合作协议书标准样本(2篇)
- 内蒙古自治区关于机关和全额拨款事业单位工作人员病事假工资待遇
- 探索者三维建筑结构建模设计软件说明书
- C++反汇编与逆向分析技术揭秘(第2版)
- 实验动物饲养人员岗位竞聘演讲范文汇报报告范文
评论
0/150
提交评论