搜索
您的当前位置:首页正文

基于PHP和Mysql的博客系统

来源:二三娱乐
毕业设计(论文)

摘要随着时代的进步、互联网的高速发展,人与人之间的交流也在技术进步的基础上发生着日新月异的变化。Blog(博客)是继Email、BBS、ICQ之后出现的第四种网络交流方式,它的出现改变了人们生活、工作和学习的方式。近几年,博客在国内以势不可挡之势高速发展,它可以作为人们分享文章、照片和思想的绝佳平台。博客已成为新兴的网络媒介,并延伸至销售、商业推广等主流应用。

Blog的前台就是一个简单的网页,它一般都是由内容简单、更新频繁的文章所构成。这些发布的文章通常都是按照年份和日期倒序排列。Blog的内容根据目的的不同可以分为很多种,常见的有行业新闻、个人思想和作品集锦等内容的博客。

琴院博客管理系统的开发目的是建立一个以PHP与MySQL为基础,使用apache服务器,基于Windows操作系统,功能简单、结构灵活而且轻量、内容精致的管理系统。该系统主要包括用户注册登录和注销模块、文章模块、评论模块、站内搜索、标签模块、主题模块、归档模块等,各个模块都利用了模板处理系统,这样可以使逻辑控制代码与结构代码分开,使得代码更容易维护和重用。由于web2.0的兴起,本博客系统在用户体验方面也做了充分的工作,用到了Ajax技术,做到了不用刷新也能更新页面的人性化功能等。

该博客系统综合了目前其它相关博客的技术,基于校园沟通基础上设计实现的,具有功能强大、操作简单、界面清新、运行快捷、维护简单等优点。

关键词:PHP,Mysql,Apache,博客,Ajax。

I毕业设计(论文)

AbstractWiththeprogressofera,therapiddevelopmentofInternet,thecommunicationbetweenpeopleisalsoonthebasisoftechnologicalprogresschangingwithchanging.Ablogisthefourthkindofnetworkcommunication,aftertheEmail,BBS,ICQ,itchangedthewaypeoplelive,workandstudy.Inrecentyears,bloginthedomesticdevelopmentathighspeed,itcanbeusedasagoodplatformforpeopletosharearticles,photographs,andideas.BloghasbecomeanemergingInternetmedia,andextendstothesales,businesspromotionandothermainstreamapplications.

Blogatthefrontdeskisasimplewebpage,itisgenerallybythecontentsimple,frequentlyupdatedposts.Thesearticlesareusuallyreleasedinaccordancewiththedateandyeararrangedinreversechronologicalorder.ThecontentoftheBlogaccordingtodifferentpurposecanbedividedintoalotofkinds,suchasindustrynews,personalideasandworksofthecontentsuchasblogs.

QindaoblogmanagementsystemdevelopmentgoalistocreateabasedonPHPandMySQL,usingapacheserver,basedontheWindowsoperatingsystem,functionalityissimple,flexibleandlightweightstructure,elaboratecontentmanagementsystem.Thissystemmainlyincludeuserloginandlogoutregistrationmodule,articlesmodule,commentsmodule,on-sitesearchmodule,tagmodule,themefilemoduleandsoon,everymoduleusingthetemplateprocessingsystem,thiscanmakelogicalcontrolcodeandstructureseparately,makesthecodeeasiertomaintainandreuse.Duetotheriseoftheweb,thisblogsystemintermsofuserexperiencehasdoneagoodwork,usetheAjaxtechnology,anddonotrefreshthehumanizedfunctioncanalsoupdatethepage.

Theblogsystemintegratedthecurrentrelatedtechnology,basedonthecampuscommunicationtodesign,hasthepowerfulfunction,easyoperation,interfaceandpureandfresh,fastoperationandsimplemaintenanceetc.

Keywords:PHP,Mysql,Apache,blogs,Ajax.

II毕业设计(论文)

目录1绪论.........................................................................................................................................1

1.1研究背景、目的和意义...................................................................................................11.2国内外研究现状...............................................................................................................11.3主要使用开发工具...........................................................................................................2

1.3.1NetBeans...................................................................................................................21.3.2Navicat......................................................................................................................21.3.3其他使用工具及技术....................................................................................................2

2系统分析..................................................................................................................................3

2.1可行性分析.......................................................................................................................3

2.1.1经济可行性.............................................................................................................32.1.2技术可行性.............................................................................................................32.2需求分析...........................................................................................................................3

2.2.1性能需求.................................................................................................................32.2.2功能需求.................................................................................................................42.3用例分析...........................................................................................................................4

2.3.1确定系统参与者.....................................................................................................42.3.2游客用户用例.........................................................................................................52.3.3注册用户用例.........................................................................................................62.3.4系统管理员用例.....................................................................................................72.4小结...................................................................................................................................8

3概要设计..................................................................................................................................9

3.1系统设计原则...................................................................................................................9

3.1.1面向用户原则.........................................................................................................93.1.2标准化、规范化原则.............................................................................................93.1.3成本效益优化原则.................................................................................................93.2系统功能模块设计.........................................................................................................103.3数据库设计.....................................................................................................................12

3.3.1数据库的概念结构设计.......................................................................................123.3.2数据库的逻辑结构设计.......................................................................................12

4界面设计................................................................................................................................15

4.1前台页面设计.................................................................................................................154.2后台页面设计.................................................................................................................164.3各页面的跳转关系.........................................................................................................16

5详细设计................................................................................................................................18

5.1博文显示模块的实现.....................................................................................................18

III毕业设计(论文)

5.2评论模块的实现.............................................................................................................19

5.3标签模块的实现......................................................................................................205.4搜索模块的实现.............................................................................................................205.5链接模块的实现.............................................................................................................185.6登陆管理模块的实现.....................................................................................................22

5.6.1登陆模块的实现...................................................................................................225.6.2管理模块的实现...................................................................................................22

总结与致谢................................................................................................................................24参考文献.....................................................................................................................................25

IV毕业设计(论文)

1绪论1.1研究背景、目的和意义博客(Blog)系统1997年开始出现在美国,2002年进入我国。作为网络信息发布的一种特殊平台,博客系统与我们传统的BBS论坛具有明显的不同。一是博客系统是一个简单的个人网页,它以网络作为载体,将本人的心得感受,生活片段以及个人喜好等通过不断更新的帖子与其他人进行交流以及展示。博客己经变成了一个为用户服务的个性化信息展示平台。二是博客系统具有极强的个性化,可以根据博客所有者的喜好设计不同的风格和版式,定义不同的功能,比BBS更加自由。三是博客中蕴含着大量丰富的信息。由于博客系统能够很好的和他人进行交流,大量的博客所有者将自己日常工作生活的感受,对事情的看法,自己喜爱的文章、音乐、电影等通过帖子的形式与他人进行共享,从而在整个博客系统中拥有庞大的信息。

博客是继Emal、ICQ、BBS之后出现的第四种网络交流方式。通过博客,用户可以方便地使用各种多媒体技术建立起个性化的私密空间,并将该空间的内容选择性的和他人进行交流、沟通。通过不断的交流,使得用户能够更好的自我学习,自我发展。可以说,博客是一种新的生活方式、工作方式以及学习方式。它在商业、教育、政治、经济、政务等领域中已经产生了巨大的影响和作用。根据有关专家的调查,学校与老师、老师与学生之间缺乏有效的交流是我国整个教育体系存在的一个重大问题,如何使得学校与老师、老师与学生之间能够更好的进行交流成为目前一个严峻的课题。博客系统的出现,从交流方式方面很好的解决了这个问题。通过博客系统,可以使得学校与老师、老师与学生之间得到更好的交流。学校可以了解老师和学生们的心理状态,老师和学生也可以了解学校信息和最新动态,老师和学生还可以在博客上自由的学习和交流,很好的改善和发展师生间的关系,为学校与老师。老师与学生之间的交流提供了一个有效的平台。由此可见开发校园博客系统将有着非常重要的意义。

1.2国内外研究现状由BfogHerald分析的2010年全球博客圈状况显示,全球博客总数达到146,625,599,这些博客中,4%是专业人士开办的,9%是企业博客,15%是兼职,因为业余爱好而开通博客的多达72%。博客的发展离不开互联网的发展,目前在互联网上的博客所能提供服务主要包括以下三种类型:

1)专业型:该类网站以提供专业的博客服务为主,比如中国校园博客网,青青校园博客网,中大教师博客网等。

2)附属型:博客服务在该类网站中只是对其他的业务系统起辅助作用,是整个Web应用程序的一个子系统,如新浪、搜狐等。

1毕业设计(论文)

3)私人型:该类博客的使用者必须自己提供服务器空间,博客运行程序和域名,但给予用户的自由度也最大。

1.3主要使用开发工具1.3.1NetBeans

NetBeans是一个开源的集成开发环境,自带Apache+MySql服务,能够在Windows环境下运行,支持PHP语言,可以帮助开发人员利用Java平台快速创建Web、企业、桌面以及移动的应用程序。

1.3.2Navicat

Navicat是一套快速、可靠并价格相宜的数据库管理工具,是专为MySQL设计的高性能数据库管理开发工具,是以直觉化的图形用户界面而建的,符合数据库管理员、开发人员的需要。

1.3.3其他使用工具及技术

HTML、CSS、JS、AJAX、Dreamweaver、Fireworks等。

2毕业设计(论文)

2系统分析2.1可行性分析可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。但可行性研究的目的不是解决问题,而是确定问题是否值得去解。因此,可行性研究实质上是在较高层次上以较抽象的方法进行的系统分析和设计的过程。

2.1.1经济可行性

博客广告是网络广告的一种特殊形式,博客和传统网络媒体相比具有自身的突出特点,正是这些特点成为个人博客广告发展的优势所在。

博客的受众是一群特定的人,成员通常具有某些相似的特点。不同类型的博客,细分程度高,定向相对准确,广告商可根据相关类型的博客来投放广告,因此单位受众的广告价值就比较高。博客广告实现了“个人对个人”的人际传播。博客既是“媒体”又是“人”,同时由于博客上的广告通常被潜在的认为是博客个人在不同程度上予以认同的,因此也就有了博客个人与看博客的网民之间潜在的人际传播。博客广告相对传统网络广告来说参与性、互动性更强。另外组成博客主体和浏览者的通常是部分先觉大众,这部分人有比较强烈的表达欲和表现力,因此对于广告的参与意识相对来说也更强。博客广告的投放方式、付费标准多样,且成本相对低廉。博客广告能通过定位技术准确锁定人群,直接发布到目标人群面前。可以锁定广告商指定的目标人群所在区域(可具体到城市),投放到指定区域的网民面前;也可以通过分析网民的阅读习惯、访问历史等因素,锁定对之感兴趣的网民,直接投放到他们面前。

2.1.2技术可行性

系统使用PHP语言进行实现。PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多。PHP支持几乎所有流行的数据库以及操作系统,跟Apache服务器能够紧密的结合。所以经论证,该系统的实现在技术上可行。

2.2需求分析2.2.1性能需求

性能需求指定系统必须满足的时间约束或容量约束,通常包括速度(响应时间),信息

3毕业设计(论文)

量速率,主存容量,磁盘容量,安全性等方面的需求。

本网站需要满足短时间内响应用户的操作,应该将响应时间控制在较短的时间内,数据会实时更新,本站还只是个小站,还不需要占用太多资源,当然如果有较大内存和处理能力较强的服务器和硬件支持,速度上肯定有提高。而在安全性上,由于还是处在测试和完善阶段,此方面考虑稍微低一些。

2.2.2功能需求

1)前台要实现的功能:

(1)简约的界面,色调柔和,以黑白红为主。

(2)浏览博客的人可以自由发表评论,注册用户可以发表文章和评论,并且可以对已有的评论进行回复。刚发表的评论有预览效果。

(3)博客有分类、归档功能,可以浏览特定类别和年月的文章。(4)搜索功能,能够对站内所有的文章进行关键字搜索。

(5)前台提供一些常用友情链接,链接可以通过用途和性质进行分类。2)后台要实现的功能:

(1)能够对文章进行管理,包括置顶、推荐、删除、分类修改、隐藏等操作。(2)能够对评论进行管理,包括编辑、审核、删除等操作。(3)能够对标签进行管理,包括添加、删除、合并等操作。

(4)能够对用户和用户组进行管理,包括删除用户和用户组、更改用户的所在组、更改用户组所具有的权限、添加用户和用户组。

(5)能够对连接进行管理,包括添加链接、删除链接、更改连接所属的组、添加链接组等操作。

(6)能够对网站的主题进行管理,实现一键更改系统的主题风格。

(7)能够对网站的大多数显示信息实现动态改动,包括博客名称、博客副标题、博客地址、博客关键字、博客描述等。另外能够对博客的显示格式进行改动,包括每页文章显示数、每页评论显示数、评论显示顺序等进行修改。

2.3用例分析系统建模是对软件进行描述、可视化处理、构造和建立软件系统的一种方法。本博客系统采用国际上通用的RationalRose建模工具设计系统模型。

2.3.1确定系统参与者

在功能性需求中首先要做的就是确定参与者(Actor)。博客系统和一般的Web网络应用系统没有很大的区别,业务逻辑功能和用例参与者都比较简单。经过分析,最后我们确定

4毕业设计(论文)

本系统参与者主要有以下三种:匿名用户、注册用户和系统管理员。

本系统将采用当前比较流行的基于角色的权限管理模式,每个用户都属于某类角色,每个角色对应不同的权限。以上三类参与者各自的系统功能如下:

(l)匿名用户

这类用户在博客系统中权限最低,在还没有注册为系统用户的情况下,这类用户作为普通的信息浏览者,只具备在进入该博客系统后进行日志浏览,查看自己喜欢的博客内容,对某些感兴趣的博文进行评论这样的权限。当然这类用户也具备网站其他不限权限功能的使用,如博文的搜索、通过标签超找博文、通过博文归档查找博文、查看该博客的友情链接,注册成该博客的会员等等。

(2)注册用户

注册用户属于普通权限用户。除了具有游客用户所具有的的所有权限外,这类用户能够在自己的博客上发布博文、修改个人信息、查看自己在本博客中的权限,查看自己发表过的留言等,除此之外,还可以欣赏其他用户的博客日志,并且能够留言和对已有留言进行回复等权限。

(3)系统管理员

系统管理员拥有的权限最高。首先系统管理员必须是注册用户,除了具备注册用户的所有权限外,管理员还能够对整个博客系统进行全方位管理,比如:博文以及博文留言的管理、文章标签管理、博客主题管理、注册会员的管理、成员组权限的设定、优秀博文推荐、重要博文置顶、定义用户的权限、系统参数配置、系统的维护等等。

2.3.2游客用户用例

通过互联网访问校园博客系统的这群人称为游客用户,游客用户具有以下功能:浏览日志和评论,进行博客浏览,查询日志发表评论,查看博客信息和会员注册等。

2.1游客用户例图5毕业设计(论文)

表2-1游客用户用例表用例名称游客用户

功能简述游客用户所具有的权限前置条件进入网站后置条件无

用户权限1)浏览博文和评论。

2)发表评论。3)搜索博文。4)注册会员。

2.3.3注册用户用例

注册用户作为该系统的使用者,除了具备游客所具有的功能外,该类用户应具有以下主要功能:个人资料修改,个人权限查看,个人论评论查看。

2.2注册用户用例图6毕业设计(论文)

表2-2注册用户用例表用例名称注册用户

功能简述注册用户所具有的权限前置条件已登录的注册用户后置条件无

用户权限1)浏览文章和评论。

2)发表文章和评论。

3)更改自己的个人信息和密码。

4)查看自己的权限和自己以前的回复。

2.3.4系统管理员用例

系统管理员的权限最高,他们除了具有普通会员所具有的所有权限意外,还要负责整个系统的日常运行和维护工作,因此管理员应具备以下权限:管理文章、评论、用户、标签、链接、主题、系统配置等等。

2.3管理员用例图7毕业设计(论文)

表2-3管理员用例表用例名称管理员

功能简述管理员所具有的权限前置条件已登录的管理员后置条件无

用户权限1)浏览文章和评论。

2)发表文章和评论。

3)更改自己的个人信息和密码。

4)查看自己的权限和自己以前的回复。

5)管理文章、评论、标签、用户、连接、主题、系统设置。

2.4小结本章在技术可行性、经济可行性、操作可行性方面及对博客管理系统的各个功能需求和以后可能提出的需求进行了简要的分析。

8毕业设计(论文)

3概要设计3.1系统设计原则“博客系统”的开发和建设是一项复杂的系统工程,其建设的好坏将直接影响到博客的维护和更新,相对来说,博客系统的数据库设计要简单一点。因此,该系统在设计和建设中必须遵循以下几条原则。

3.1.1面向用户原则

博客系统功能和界面设计遵循了以下几点原则:

(1)功能结构的合理性即系统功能模块的划分要以系统功能设计思想为指导,合理地进行模块化的开发,功能特点清楚、逻辑清晰、设计合理;

(2)功能结构的完备性根据系统应用目的要求,系统功能应适合各应用目的和范围;(3)各功能模块的独立性系统的各功能模块应该相互保持独立,各自具备一套完整的处理功能,且功能相对独立,重复度最小,即低耦合高内聚;

(4)功能模块的可靠性模块稳定性好,操作可靠和方便,数据处理方法科学和实用;(5)功能模块操作的简便性各子功能模块应操作方便,简单明了,对各种用户都便于掌握;

(6)系统功能模块的易扩充性和开放性系统应具有良好的接口和方便的二次开发这就要为用户预留系统接口,以便用户在此基础上对其进行更新;

(7)功能实用性实用性是衡量软件质量中最重要的指标,它是软件成败的关键因素。因此,一个成功的应用型博客系统应该是非常复合用户需求,非常实用的。

(8)界面美观性在功能比较完善的情况下尽量做到操作简便,界面清晰美观。普通的互联网用户大多数都不是计算机专业人士,因此应尽量使用简单的界面看起来很直观而且具有良好的可操作性。

3.1.2标准化、规范化原则

系统内容、数据分类与编码、数据精度、作业规程等应采用或部分采用有关国家标准、行业标准和地方标准;对国家标准、行业标准和地方标准中没有包括但需规范化的内容,可补充制定临时规定。

3.1.3成本效益优化原则

(1)数据精度应满足应用需求为标准;

9毕业设计(论文)

(2)选择性能价格比最优的系统配置方案;(3)合理安排工作的优先顺序;

3.2系统功能模块设计所谓模块是指数据说明、可执行语句等程序对象的集合,它是单独命名的而且可以通过名字来访问,例如,过程、函数、子程序、宏等等都可作为模块。模块化就是把程序划分为若干个模块,每个模块完成一个子功能,把这些模块集中来组成一个整体,可以完成指定的功能满足问题的要求。

根据系统设计原则,经过需求调查,确定本系统共6个完整的大功能模块,大模块的下面又分为几个子模块。各个模块结构如下图:

图3.1系统模块结构图10毕业设计(论文)

各模块功能介绍如下:

1)文章显示模块:当用户进入首页时,系统收线通过遍历数据库,以列表的形式依次显示文章的标题、摘要、作者、发表时间、文章分类、文章阅读次数、文章评论条数、文章所拥有的标签。当用户点击标题时,显示文章的详细内容,并在文章的下面显示用户对本文的评论。

2)评论模块:当用户点击文章标题时,在文章的下面显示该文章的评论。每条文章评论后面带有回复按钮,注册会员或者管理员用户可以对其他用户对文章的评价进行回复,实现良好的互动。评论的下方有发表评论编辑栏,用户可以在这发表对文章的新评论。

3)标签模块:当用户点击文章标签时,系统会罗列出带有次标签的所有文章,这样可以有助于用户查看某一类的文章,节省了用户的超找时间。当用户点击导航栏上的标签栏时,系统会显出所有文章的标签,用户可以通过不同的标签,只浏览拥有这一类标签的文章。

4)文章搜索模块:用户既可以通过文章的标题进行搜索,也可以通过文章的内容进行搜索。用户也可以对某一类文章进行搜索,缩小搜索的范围,使超找出的结果更加精确。当然用户也可以根据文章发表的时间进行搜索,这样方便于用户超找某一个时间段内发表的文章。用户还可以选择搜索结果的显示方式和顺序,结果可以以发表时间、阅读次数、评论次数进行升序或者降序的排列。

5)链接模块:当用户点击导航栏的友情链接按钮时,为用户显示博主推荐的友情链接,链接可以分类显示,用户可以根据自己的需要到某一类里找到自己需要的网站链接;

6)用户登陆模块:当普通注册用户成功登陆网站时,用户可以撰写文章进行发表、查看自己的个人资料并进行修改、查看自己拥有的权限、查看自己发表过的留言。

7)管理员登陆模块:管理登陆模块是后台管理主要模块的,要完成的模块如下:(1)文章管理,包括置顶、推荐、删除、分类修改、隐藏等操作。(2)评论管理,包括编辑、审核、删除等操作。(3)标签管理,包括添加、删除、合并等操作。

(4)用户和用户组管理,包括删除用户和用户组、更改用户的所在组、更改用户组所具有的权限、添加用户和用户组。

(5)链接管理,包括添加链接、删除链接、更改连接所属的组、添加链接组等操作。(6)网站的主题管理,实现一键更改系统的主题风格。

(7)网站的大多数显示信息实现动态改动,包括博客名称、博客副标题、博客地址、博客关键字、博客描述等。另外能够对博客的显示格式进行改动,包括每页文章显示数、每页评论显示数、评论显示顺序等进行修改。

11毕业设计(论文)

3.3数据库设计3.3.1数据库的概念结构设计

概念结构设计就是将分析得到的用户需求转化为概念模型的过程。也就是在需求分析的基础上,能够设计出既满足用户需求的各种实体,又能反映出它们之间的相互关系的概念结构设计模型。概念结构设计是整个数据库设计的关键。系统总体E-R图如下:

图3.2系统总体E-R图3.3.2数据库的逻辑结构设计

数据库中的表:

1)博文表:该表的作用主要是为博文设置唯一的标示字段,记录博文的标题、描述、摘要、内容、发布时间、标签、状态和来自于等基本信息,确定文章分类、作者,记录文章发表后的访问量、回复量和是否被管理员置顶或者推荐等。其具体字段的详细信息如表3-1。

12毕业设计(论文)

表3-1博文表字段名称博文id分类id用户id用户名标题url名字状态密码来自于来自于url描述摘要内容回复量访问量发布时间是否置顶是否推荐是否审核标签字段名idciduidusernametitleurlnamestatuspasswordfromfromurldescriptionexcerptcontentcommentsviewsdatelineistopiscommendischecktags

数据类型int

smallintmediumintvarcharvarcharvarchartinyintvarcharvarcharvarcharvarchartextmediumtextmediumtextmediumtextint

tinyinttinyinttinyintvarchar长度10582025510013020200150008810111255

备注主键

2)评论表:该表的作用主要是为评论设置唯一的标示字段,记录游客评论者的用户名、主页、email、其所在网络的ip地址,记录登陆用户评论者的id和用户名、其所在网络的ip地址,保存评论的内容、发表时间、是否隐藏、文章是否审核、评论所属的博文等。其具体字段的详细信息如表3-2。

表3-2评论表字段名称评论id博文id归档id用户id用户名email主页内容时间ip是否审核是否隐藏字段名idadiriduidusernameemailhomepagecontentdatelineipischeckishide

数据类型intintint

mediumintvarcharvarcharvarchartextintvarchar

tinyinttinyint13长度101010820501000101511

备注主键

毕业设计(论文)

3)用户表:该表的主要作用是为每个用户设置唯一的标示id,记录用户的用户名、密码、性别、主页、email、qq、所属分组、注册时间等信息,记录用户最后一次登陆时间、登陆次数等。其具体字段的详细信息如表3-3。

表3-3用户表字段名称字段名数据类型长度备注

mediumintid8用户id主键varcharusername20用户名

char密码password32tinyint性别sex1varchar主页homepage100varcharemailemail50varcharqqqq15smallint用户分组idgroupid5int最后一次登陆时间lastlogin10intregtime10注册时间

int登陆次数logincount10varcharipip15

4)日历表:该表的作用是记录根据博文发表时间进行的分类。其年月字段记录发表时间的年月,每个年月是一个归档;日字段记录文章的日期,博文id字段记录某年月某日所发表的所有博文的id。

5)文章分类表:该表的作用为文章的每一个分类确定一个唯一的标示id,记录该分类名字、描述、该分类所拥有的博文数等。

6)配置表:该表主要用来记录博客系统的详细配置,其中有博客的名字、副标题、所属URL、描述、主题、页面大小、每页文章显示数等详细信息。

7)链接表:该表的作用是记录链接模块所提供的超链接。起字段记录的内容有该链接的标示id、链接所属的分组、链接名、链接的URL地址、链接的logo、链接的描述等基本信息。

8)链接分组表:记录链接的分组。

9)标签表:为标签提供唯一的标示id。记录标签的名字以及该标签下面所拥有的文章数。

10)Session表:为用户登录后提供session功能。记录用户的id、用户名、用户密码、用户所属的组、用户所在网络的ip地址。

11)用户分组表:为该分组提供一个唯一的标示id,记录该用户组的组名,保存用户所拥有的权限等。

14毕业设计(论文)

4界面设计4.1前台页面设计12)本系统的前台界面由文章内容显示区、header区、footer区、sidebar区、评论区组成,这种界面设计参考了Opera的界面,简约明快,主色调以黑色、灰色、白色和红色为主。为保持各个页面的连贯性,采用分块设计。设计head.php作为各个网页的头部,设计foot.php作为网页的页脚,头部与页脚的色调以黑色调为主,醒目,突出重点。大背景色为灰色,博文显示区的背景色为白色,这样是使个页面看起来既简约又典雅,能够把内容鲜明的体现出来,并且颜色过渡自然。博文的标题采用红色三号楷体,在白色背景下显得和谐、醒目,直接映入浏览者视野。摘要,博文信息也采用灰色,呼应主题背景。sidebar区则采用黑色背景,白色六号楷体,体现了整个页面欢快,简约的风格。其界面具体布局如下图:

图4.1前台布局轮廓图页面采用CSS+DIV的布局方式,CSS承载样式,DIV承载布局。将大部分页面代码写在了CSS当中,使得页面体积容量变得更小。相对于表格嵌套的方式,DIV+CSS将页面独立成更多的区域,在打开页面的时候,逐层加载。提高了加载速度。由于使用了DIV+CSS制作方法,在修改页面的时候更加容易省时。根据区域内容标记,到CSS里找到相应的ID,使得修改页面的时候更加方便,也不会破坏页面其他部分的布局样式。

15毕业设计(论文)

4.2后台页面设计本系统的后台页面内容由显示区、左侧边区、header区、footer区组成。颜色采用黑色,白色,浅蓝色。后台主体颜色采用冷色调,展示出管理界面的简约、严谨的氛围。其他技术方面与前台相同,只是色调与前台不同。起界面具体布局如下图:

图4.2后台布局轮廓图4.3各页面的跳转关系该博客系统页面采用框架式结构,整个系统页面的header区域和sidebar区域是不变的,当用户点击各个导航按钮时,只有content区域的内容会进行更新。但是当用户点击“注册”、“登陆”,或者用户登陆后点击“用户中心”时,整个页面才会进行跳转。

系统的前台页面跳转关系如下:

1)当用户点击“博文标签”按钮时,页面将会在content区显示所有的博文标签。2)当用户点击“博文归档”按钮时,页面将会在content区显示所有的月份的归档及没个归档下的博文数。

3)当用户点击“博文搜索”按钮时,页面将会在content区显示接收搜索关键字的出入框以及搜索限制的按钮。

4)当用户点击“友情链接”按钮时,页面将会在content区显示所有的友情链接以及分类。

5)当用户点击博文标题时,页面将会在content去显示该篇博文的详细信息、内容以及

16毕业设计(论文)

用户对该片文章的评论。

6)当用户点击“注册”按钮时,页面将会跳转至注册页面register.php页面。7)当用户点击“登陆”按钮时,页面将会跳转至登陆页面login.php页面。

8)当用户登陆成功后,用户点击侧边栏的“用户中心”按钮时,页面将会跳转至后台管理页面admin.php。

系统的后台跳转关系如下:

1)当用户点击“博文管理”按钮时,页面将会在content区显示管理博文的相关信息。2)当用户点击“评论管理”按钮时,页面将会在content区显示管理评论的相关信息。3)当用户点击“标签管理”按钮时,页面将会在content区显示管理标签的相关信息。4)当用户点击“用户管理”按钮时,页面将会在content区显示管理用户的相关信息。5)当用户点击“链接管理”按钮时,页面将会在content区显示管理连接的相关信息。6)当用户点击“主题管理”按钮时,页面将会在content区显示管理主题的相关信息。7)当用户点击“个人管理”按钮时,页面将会在content区显示管理个人的相关信息。8)当用户点击“系统设置”按钮时,页面将会在content区显示系统设置的相关信息。

17毕业设计(论文)

5详细设计5.1博文显示模块的实现博文显示模块是整个博客的主体内容显示部分,如果将博文内容也直接显示在该部分,内容将会填充满整个屏幕,不利于用户浏览博文。所以默认情况下,博文显示模块只显示文章的标题、作者、发布时间、浏览量、回复数、标签、概要等基本信息,并且将所有博文通过列表的形式,逐次排列显示。当用户点击博文标题时,将博文的全部信息进行显示。

当用户打开页面时,该模块首先进行用户权限的判断,通过一个check_purview()方法判断用户是否为管理员,若为管理员,则对数据库中所用的博文进行查询;若不为管理员,则通过if($row['ishide']==0)判断语句,只查询不隐藏的博文。然后通过have_post()方法判断是否有符合条件的文章,如果有,再通过while(get_post())语句,将文章进行遍历输出;若没有,则提示用户“抱歉,没有符合条件的文章”。

当用户点击博文标题时,通过get_post_info('url')方法实现页面的重定向,显示该篇博文的详细内容,并将博文浏览量进行+1操作。该模块的具体流程如图5.1。

图5.1博文模块流程图5.2链接模块的实现该模块的主要作用是为用户提供一些可用的友情链接。链接进行分类显示,用户可以根据不同的分类,在这个分类中查找自己要找的链接。其实现主要是在显示页面调用get_friendlink()方法进行输出。get_friendlink()方法的具体实现代码如下:foreach($_CACHE['link']as$gid=>$group){

$output.=\"

{$group[groupname]}

\";

18毕业设计(论文)

if(!empty($group['links'])){

foreach($group['links']as$row){

$text=(empty($row['logo'])&&$showicon)?$row['name']:\"src=\\\"{$row[logo]}\\\"alt=\\\"{$row[name]}\\\"/>\";

$output.=\"

  • target=\\\"_blank\\\">{$text}
  • \\n\";}

    遍历link数组,将其内容保存到$group变量。输出HTML语句,显示链接组名$group[groupname]。判断链接组是否为空,若不为空,遍历该链接组中的链接,将链接的属性值当做HTML的内容,输出该HTML语句。

    5.3评论模块的实现评论模块分为两部分,一是评论的显示,二是评论的发表。评论作为博文的附属部分,依赖于博文的id字段,所以只有当用户点击博文标题,博文进行详细信息显示时,才会显示评论,并且在评论的下方给出编辑区,供用户进行博文评论和评论回复。

    当博文全部内容显示完毕后,通过if(have_comment())语句判断该文章是否有评论,若没有评论,显示“暂时没有人发言”。若有评论,则需要先通过if(check_purview('reply_comment'))语句,判断用户是否为游客用户,若不为游客用户,将每条评论后面添加“回复”字样的超链接,以便其他用户对该条评论进行回复。通过while(get_comment())语句遍历输出评论。每输出一条评论,通过get_comment_info('content')判断评论回复是否为空,如果不为空则通过get_comment_reply('于','Y-m-dH:i','回复:')函数依次输出评论回复。

    当评论全部内容显示完毕后,通过if(user_islogin())语句判断用户是否已登录,若用户已登录,通过get_user_info('name')方法,告诉用户您已经用了哪个账户进行发言;若用户未登录,通过三个标签,分别接收游客用户的昵称、邮箱、主页。然后通过一个单选标签,让用户进行选择,判断用户要发表的是否是隐藏文章。最后通过标签接收用户发表评论内容,提交表单。表单提交时,通过onsubmit触发javascript脚本,执行ajax_post_comment()方法。该方法可以判断用户权限,若用户为游客,判断用户输入的昵称、邮箱、主页是否符合规范。然后判断用户输入内容是否为空,若不为空在判断评论是文章评论还是评论回复,根据分类进行数据库插入操作。最后进行实时显示回复信息。

    当用户点击一条评论后面的“回复”超链接时,通过href=\"#post_comment\"将页面转入评论编辑处,同时通过javascript脚本的reply_name()方法,更改“发表新评论”标签,提示用户现在发表的是评论回复。这时虽然用户使用的是和发表博文同一个编辑区,但是当用户提交表单后,该条评论将会保存成某一条评论的回复,而不是博文评论。

    该模块的具体实现流程如下图5.2。

    19毕业设计(论文)

    图5.2评论模块流程图5.4标签模块的实现标签模块是将所有博文的标签依次罗列,用户可以通过点击某个标签来显示拥有该标签的所有文章。标签的实现首先也要通过check_purview()检查用户的权限,若文章为隐藏文章,即使文章有标签,但是因为用户没有权限,也不予显示。然后调用get_tags()方法,依次显示数据库中的标签。get_tags()方法的定义包括遍历所有的标签,对每一个标签添加超链接,实现当用户点击一个标签时,对页面进行重定向,调用博文显示模板,显示该标签下的所有博文。

    5.5搜索模块的实现搜索模块也是该博客系统的核心模块,通过搜索,用户可以根据搜索条件快速的找到自己想要找到的博文,并按照自己的意愿进行排序输出。

    搜索模块的实现首先要定义一个搜索间隔变量$time_limit,该值可以任意给定,但需要

    20毕业设计(论文)

    适当合理,目的是防止恶意搜索使网站瘫痪。然后通过get_cookie('last_search')方法获得上次搜索时间,并将此值复制给$lasttime变量。将$lasttime+$time_limit的值与系统时间进行比较,若前者大于后者,则提示用户“对不起,X秒内只能进行一次搜索”。

    通过set_cookie('last_search',PHP_TIME)语句设置本次搜索时间,以供判断下次搜索是否合法。若用户搜索的字段只有一个字符,则搜出的内容将很多,不具备分类性质,使搜索失去意义;若用户搜索的字段太多,则通过字段匹配又很难有完全符合情况。所以搜索时要检查搜索字符的大小,若字符过短或者字段过长,则不允许搜索,同时通过show_msg()方法提示用户,搜索的字符不能少于3字节或大于50字节。

    用户可以选择是通过标题或者内容进行搜索。设置一个单选标签,根据该标签的值,通过一个if($type=='title')语句就可以实现两种不同的搜索。由于用户要搜索的时间可能是近期,或者某一个时间段,再设置一个单选标签,标签的默认时间设置为全部时间,通过if($time!='all'&&is_numeric($time))语句来判断用户要对那个时间段进行搜索。由于用户可能需要对查询结果进行一定顺序的输出,再通过一个单选标签来接收排序的方式。然后检查用户权限,若用户不为管理员,根据文章是否隐藏字段,筛选掉隐藏文章。执行sql语句,按照以上要求进行查询。最后通过博文显示模板将查询结果进行输出。

    该模块的实现流程如下图5.4。

    图5.4搜索模块流程图21毕业设计(论文)

    5.6登陆管理模块的实现5.6.1登陆模块的实现

    登陆模块作为进入后台的入口,也是系统的一个重要环节。但是登陆模块不涉及复杂的算法,所以将登陆信息的验证和界面的前台实现放在了同一个页面。因此,首先要通过check_submit('dosubmit')方法判断用户是初次打开登陆界面还是用户已提交表单。若为初次登陆,跳过后台处理,直接执行界面显示的HTML语言。若用户已提交登陆信息,则先要if(strlen($username)<3||strlen($username)>20)语句判断用户名是否合法,若合法则继续通过elseif(!is_username($username))语句判断,用户名中是否有非法字符,然后通过if(strlen($password)<6)语句,判断密码长度是否符合规范。若果上述操作有任一项没有通过,则if(count($errmsg))show_msg($errmsg,'login.php')语句将错误信息进行输出,并返回登录界面。

    若上述操作成功通过,则通过$flag=$_USER->login($username,$password,$remember)语句,将登陆状况赋值给一个标识变量$flag,如果该标识变量为1,则通过goto_page('admin.php'),将页面转入后台管理页面。若不为1,通过显示语句show_msg('登录失败,用户名或密码错误。','login.php')提示用户错误,并返回登录页面。

    5.6.2管理模块的实现

    管理模块分为用户管理模块和管理员管理模块。用户管理的是用户的个人信息,其实是管理员模块的一个子模块,相当于管理员模块的个人管理,用户登录成功后,通过if(is_superadmin()||check_purview('manage_login'))

    语句判断登录用户的权限,若用户为管理员,则显示全部管理模块,若为普通注册会员,则只显示个人管理模块。

    1)博文管理模块的实现

    当管理员点击博文管理时,该页面默认显示博文列表页面,页面重定向的参数$do=='list'。由于是列表模式,在每一条博文的前面添加\"class=\"checkbox\"/>复选标签,其值为该篇博文的标示$row['id'],这样管理员就可以通过选定多个复选框,同时对多篇文章进行管理。

    在列表的顶端,添加标签,通过javascript脚本函数check_all(this),当管理员点击该标签时,下面所有复选框将被选中,这样就能使管理员更方便的实现批量操作,做到人性化。博文列表的下方提供几个单选标签,用户在选定博文以后,可以进行博文删除、更改博文状态、是否置顶和推荐、将博文更改分类等操作。

    撰写博文其实是博文管理的一个子模块。当管理员点击撰写博文时,页面重定向的参数$do=='write'。根据博文各项属性,依次定义标签,进行接收,最后调用get_editor('content',$article['content'])方法,调用网页文本编辑器FCKEditor,它对文章进行所见即所得的编辑,致于轻量化,不需要太复杂的安装步骤即可使用。get_editor('content',$article['content'])方法的具体实现代码如下:

    get_editor($cname,$content='',$height='400',$toolbar='Basic'){

    22毕业设计(论文)

    require_once(ADMIN_ROOT.'./editor/fckeditor.php');$editor=newFCKeditor($cname);$editor->BasePath='./admin/editor/';$editor->Height=$height;

    $editor->ToolbarSet=$toolbar;$editor->Value=$content;$editor->Create();

    引用fckeditor.php这个文件,基本的类和数据结构都在这里;创建一个FCKeditor对象,并设置它的路径;设置它的高度;工具按钮设置为基本;编辑内容为$content,默认为空值,若是编辑已有博文,则该部分显示该博文的内容;执行生成方法。

    编辑博文类似于撰写博文,只是将已有博文的属性赋值给标签的value属性,这样管理员只需要更改显示在各个标签的内容,最后保存,就可以实现博文的编辑操作。

    2)评论、标签、用户、链接、个人、系统等管理的实现

    以上各模块的实现与博文管理类似,都是通过表单传递的数据完成数据库对表的增、删、改、查操作。

    3)主题管理模块的实现

    主题管理模块是实现网站前台多样化的模块。当管理员点击主题管理时,为管理员呈现已设计好的多套主题的缩略图。管理员只需要点击某一套主题的缩略图,就可以实现网站的主题更换。起主题列表实现代码如下:

    \">

    \"title=\"应用该主题\">\"/>

    作者:
    版本:
    时间:
    \"主页:

    target=\"_blank\">

    \">简介:

    遍历主题变量,将每套主题的属性一次进行输出。若遍历到的主题为当前主题,对该主题的进行CSS样式设置,使该主题缩略图的背景显示为黄色,以与其它主题进行区分。对主题缩略图进行超链接设置,当用户一键点击该图片时,将页面重定向到主题设置部分。当用户一键点击某套主题的缩略图时,通过定义变量$theme=check_str(getGP('theme'))来接受表单传递的主题信息,执行数据库操作语句$db->query(\"UPDATE\".DB_TABLEPRE.\"configSET`value`='$theme'WHERE`type`='blog'AND`name`='theme'\")对配置表中的主题信息进行更新,最后通过重定向语句goto_page('admin.php?ac=theme')再次回到主题管理界面,完成主题更换。

    23毕业设计(论文)

    总结与致谢毕业设计(论文)是大学生活的重要组成部分,是对一个学生大学四年学习成果的重要检验。这次毕业设计(论文)PHP博客系统是我第一次完整地按照软件工程的要求,从需求分析、系统设计、详细设计到编码和软件测试所开发的系统。在周芳老师的指导下和同学们的帮助下,我通过自己的努力,成功地开发了该系统。

    在这次的博客设计中,我仿照了网上开源博客的界面设计,这些博客都是近年来流行的博客框架,其插件和模板非常丰富,功能很强大,本次的博客系统只是实现了博客的基本功能,感谢开源社区的帮助,没有开源社区,这次的PHP博客系统也是无法完成的。

    本毕业设计过程中,我得到了很多人的支持与帮助。首先要感谢我的导师周芳老师,从论文的选题到课题研究以及论文的撰写都是在周老师的关怀和悉心指导下完成的。在论文撰写过程中,导师给予了我严格、耐心的指导,帮助我树立了正确的研究方向和科学的学习方法,使我顺利地完成了大学期间的学业。周老师在科研和学术上的勤奋、严谨、求实的工作态度让我认识到了一个学者的风范,在我以后的学习、工作过程中将产生深远的影响。借此机会,向导师致以最崇高的敬意和最衷心的感谢。

    在大学期间,琴岛学院计算机工程系的各位老师也给了我很大的帮助,在此,向他们表示深深的谢意。感谢各位同学在我学业上给予的帮助。

    最后,衷心地感谢所有参加本论文评阅和答辩的各位老师,谢谢他们在百忙之中付出宝贵时间和精力。

    24毕业设计(论文)

    参考文献[1][澳]QuentinZervaas著苏金国、陈永志等译《PHPWeb2.0开发实战》.北京:人民邮电出版社2008年07月

    [2][澳]QuentinZervaas著苏金国、陈永志等译《PHPWeb2.0开发实战》.北京:人民邮电出版社2008年07月

    [3]叶青著《完全开发HTML+CSS+JAVASCRIPT使用详解》.北京:电子工业出版社2008年06月

    [4][美]AndiGutmans,StigS_therBakken,DerickRethans著简张桂译《PHP5权威编程》.北京:电子工业出版社2007年12月

    [5][英]SimonCollison著刘志忠等译《CSS基础教程》.北京:人民邮电出版社2007年09月

    [6][美]ElizabethCastro著陈剑瓯等译《HTMLXHTMLCSS基础教程(第6版)》.北京:人民邮电出版社2007年08月

    [7][美]JanetValade著《PHPandMySQLForDummies2ndEdition》.WileyPublishing,Inc2004年3月

    [8][美]卜斯特罗著《HTMLXHTMLCSS基础教程第6版》,人民邮电出版社[9][加拿大]RaymondYee著唐扬斌译《Web2.0Mashup开发实战》.北京:人民邮电出版社2009年4月

    [10][澳]QuentinZervaas著苏金国、陈永志等译《PHPWeb2.0开发实战》.北京:人民邮电出版社2008年07月

    [11][美]LarryUllman著陈宗斌等译《PHP与MySQL基础教程》.北京:人民邮电出版社2007年04月

    [12][美]MarcWandschneider著马朝晖温继文等译《PHP和MySQLWeb应用开发核心技术》.北京:机械工业出版社2006年09月

    [13]高爽著《零基础学PHP》.北京:北京交通大学学报2006年

    [14]邹天思、潘凯华著《PHP数据库系统开发完全手册》.北京:人们邮电出版社2006年

    [15]邹天思、潘凯华、刘中华著《PHP程序开发范例宝典[M]》.北京:科学出版社2003年

    [16]高洛峰著《PHP项目开发》.北京:清华大学出版社2005年

    [17]崔俊芝著《PHP与MySQL程序设计》北京:北京高等教育出版社1995年[18]JonDuckett著《HTML、XHTML、CSS与JavaScript入门经典》北京:清华大学出版社2011年

    [19]陈浩著《PHP程序设计[M]》.北京:电子工业出版社2005年

    [20]邵煜著《PHP和MYSQLWEB开发[M]》.北京:机械工业出版社2005年

    25

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

    Top