毕业设计(论文)-基于thinkPHP的校园博客设计x.docx
《毕业设计(论文)-基于thinkPHP的校园博客设计x.docx》由会员分享,可在线阅读,更多相关《毕业设计(论文)-基于thinkPHP的校园博客设计x.docx(15页珍藏版)》请在冰点文库上搜索。
全日制本科生毕业论文
`
题 目:
基于thinkPHP的校园博客设计
学 院:
计算机与信息科学学院
专业年级:
计算机科学与技术2011级
学生姓名:
学号:
指导教师:
职称:
副教授
2015年5月6日
基于thinkPHP的校园博客设计
计算机与信息科学学院 计算机科学与技术
摘 要:
本毕业设计是基于thinkpPHP框架制作的校园博客系统,有前端和后台两个部分。
前端本设计采用了Css+Div、JavaScript、Jquery等技术,后台采用了
MySQL、PHP、thinkPHP等相关技术,实现了前端博客展示、博客评论、搜索和后台的博客发布、用户信息的管理、修改、管理员操作等功能。
全套设计加扣3012250582
关键词:
thinkPHP;MySQL;JavaScript;jQuery;动态网页设计;博客
Abstract:
ThegraduationprojectisbasedonthecampusblogsystemthinkpPHPframemadewiththefront-endandback-officeintwoparts.Thefront-enddesignusesCss+Div,
JavaScript,Jquerytechnology,backgroundusingaMySQL,PHP,thinkPHPotherrelatedtechnology,thefront-enddisplayblog,blogcomments,searchandbackstageblogpublishing,managementofuserinformation,modify,administratoroperationsandotherfunctions.
Keywords:
thinkPHP;MySQL;JavaScript;jQuery;DynamicWebpagedesign;Blog
1研究背景
博客的出现,使我们在互联网世界第一次有了知识积累和文化指向,使人类
第14页(共13页)
由粗放的数字化生存过渡为个人化的精确目录式生存。
博客们将工作、生活和学习融为一体,通过博客日志,将日常的思想精华及时记录并发布,萃取并链接全球最有价值、最相关、最有意思的信息与资源。
校园博客是建立在校园网络中,是学生之间的信息分享平台。
同学梦通过校园博客这个平台,可以分享自己学习经验、文学创作和影片推荐等。
把个人所好传播出去,传播知识文化,供其他学生学习和欣赏,方便学生之间的学习交流,分享多一些快乐。
在大学中学生都是分专业学习,正好利用校园博客,在一起交流学习了解各专业各领域的知识。
2开发环境简介
为了方便系统的开发,使用XAMPP虚拟机。
XAMPP 虚拟机是一个易于安装,且包含MySQL数据库、PHP引擎和 Apache服务器[1]。
利用CSS设计前端页面,是能够真正做到网页表现与内容分离的一种样式设计语言[2],这样能更有效地提高系统开发都效率[3]。
2.1开发框架thinkPHP3.2
thinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,遵循
Apache2开源协议发布[4],从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用了面向对象的开发结构和MVC设计模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和
ActiveRecord模式。
thinkPHP可以支持windows/Unix/Liunx等服务器环境[5],正式版需要PHP5.0
以上的版本支持,支持了MySql、PgSQL、Sqlite等多种数据库[6],ThinkPHP框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块。
2.2MySQL数据库
MySQL是一种关系数据库管理系统,MySQL使用了最常用的标准化SQL语言[2]。
其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选用MySQL作为网站数据库[7]。
在此项目中对MySQL的使用,通过NavicatforMySQL此软件来完成。
NavicatforMySQL是一款强大的MySQL数据库管理和开发工具[8],对于新用户易于学习。
提供类似于MySQL的用管理界面工具,解放PHP等程序员以及数据库设计者、管理者的大脑,降低开发成本,为用户带来更高的开发效率。
3课题分析
3.1博客结构分析
此网站为校园博客设计,使用thinkPHP框架来实现博客各项功能[9]。
首先要分析博客所需要的各项功能,前台有博客的显示、博客搜索、博客的评论。
后台有,普通用户的博客发布和本人信息的管理,管理员的对所有普通用户的个人信息、评论信息和博客信息的管理。
3.2网页用户需求分析
此博客对不同的访问者有不同的权限:
l游客:
只能对发布的博客浏览,可关键字搜索;
l普通用户:
可以在博客下进行评论,发布博客和修改个人信息;
l管理员:
除以上权限以外还可以修改普通用户发布的博客内容;修改普通用户信息、添加普通用户,修改评论信息。
4网站总体设计
4.1前台博客设计
前台网页浏览,没有权限限制。
方便访问者随意浏览。
l博客首页:
展示所有新发布的博客文章;
l博客版:
选择各类型博客的版块;
l博客搜索:
搜索本站博客文章;
l博客:
显示博客文章;
l热门博客、博主其他博客:
显示访问量大的博客文章,和博主新发布的文章;
l博客评论:
在博客内容窗口下方有访客评论。
下图4-1前台博客的功能描述。
前台页面
博
客首页
博
客版
博
客搜索
热
门博客
博
客访问
博
客评论
更
多博客
4-1前台博客
4.2后台博客设计
博客后台为注册用户提供了,博客发布管理,用户信息和密码管理。
同时为服务的管理员提供了,博客内容、评论内容、修改权限添加用户。
l注册、登录:
注册和登录是实现后台必要功能;
l博客发布:
每个用户可以发布自己编辑的博客;
l用户信息:
包含每个用户的博客中的昵名,博客空间名和性别等信息;
l修改密码:
修改的用户个人的密码的;
l用户添加:
管理员可添加新用户;可以对普通用户的信息进行更改;超级管理员可以更改管理员的信息管理,更改所有用户的权限;
l博客修改:
管理员对普通用户已发表的博客进行查看和修改;超级管理员则可以对管理员的博客进行管理;
l用户评论:
管理员可参考和修改博客评论;超级管理员可以对管理员的评论进行更改;
下图4-2后台博客的功能描述。
后台页面
登录
普通用户
管理员
博
客发布
用
户信息
修
改密码
添
加用户
博
客修改
用
户评论
图4-2后台博客
4.3整体的架构
博客系统采用了thinkPHP3.2框架,而thinkPHP3.2框架采用了
MVC(MVC是模型-视图-控制器)的设计模。
MVC设计模式将模型和视图
的代码分离,从而在开发系统中各模块的耦合度小[10],处理问题更方便。
lModel(模型)在应用程序中处理应用程序的数据逻辑的部分。
通常模型对象负责在数据库中存取数据。
lView(视图)在应用程序中处理数据的显示部分。
通常视图是依据模型数据创建的。
入口文件
控制器
数据库操作
视图
lController(控制器)在应用程序中处理用户交互的部分。
下图4-3MVC模型关系。
图4-3MVC模型
5数据库设计
5.1创建数据库
博客网站使用MySQL数据库的管理软件NavicatforMySQL建立后台数据库blog。
建立的数据库blog包含以下几个数据表,分别为blog_blog(已发布的博客、blog_ping(博客的评论)、blog_type(博客的分类)和blog_user(用户的信息)。
(1)表blog_blog存储所有用户发布的博客信息,如表5-1所示。
表5-1 blog_blog表
字段名称 数据类型 宽度 主键否 必填字段 说明
id
int
8
是
是
博客编号,自增
blogname
char
32
否
是
博客名称
blog
text
0
否
是
发布的博客信息
userid
int
8
否
是
博主的编号
type
int
8
否
否
博客的分类
time
int
10
否
是
博客发布的时间
dian
int
10
否
是
博客的浏览次数
(2)表blog_ping为所有的用户对每个博客的评论信息,如表5-2所示。
表5-2 blog_ping表
字段名称
数据类型
宽度
主键否
必填字段
说明
id
int
8
是
是
评论编号,自增
thing
text
0
否
是
博客评论信息
blogid
int
8
否
是
评论博客编号
userid
int
8
否
是
评论者编号
pid
int
8
否
是
评论的级别
time
int
16
否
是
评论发表时间
(3)表blog_type为博客的的不同分类,如表5-3所示。
表5-3 blog_type表
字段名称
数据类型
宽度
主键否
必填字段
说明
id
int
8
是
是
分类编号,自增
name
char
16
否
是
分类的名称
(4)表blog_user为注册用户、管理员和超级管理员的信息,如表5-4所示。
表5-4 blog_user表
字段名称
数据类型
宽度
主键否
必填字段
说明
id
int
8
是
是
用户编号,自增
username
char
16
否
是
所有用户ID
password
char
16
否
是
用户密码
sex
char
8
否
否
用户性别
name
char
32
否
否
用户显示昵名
blognam
char
32
否
否
用户空间名
did
int
4
否
是
用户权限
6详细功能设计
6.1前台评论功能
在博客内容下用户都可以进行评论,博客内容在加载时,同时加载所有对于该博客的评论。
可以对再该评论进行评论,在加载评论时,对所有的该篇评论进行无限级分类的操作,实现评论的分级。
功能实现流程图6-1所示。
详细代码请见附录。
是
评论加载
加入评论中
发表评论
否
进行评论 是否登录
图6-1 用户评论流程图
6.2后台更改信息功能
登录
判断是否有权限
用户信息
修改用户
读取用户信息数据
添加用户
显示信息
写入数据库
修改信息
更新数据库
对于管理员有对所有普通用户的所有信息进行管理,如用户个人信息、所有博客信息和用户评论信息。
可以对这些信息分别做了显示、添加、删除、修改和查询的基本管理功能的操作。
以管理用户信息为例,功能实现流程图6-2所示。
详细代码请见附录。
图6-2 用户评论流程图
该流程图是管理员对用户信息的修改和添加功能的实现。
首先,用户登录先判定是否有管理员权限,有管理员权限才能进行管理用户信息。
其次,用户信息管理分为两块:
第一块为添加用户,是向数据库添加用户的账号和密码;第二块为修改用户信息,是先显示用户已填写的用户信息,在此基础上再进行修改。
7系统测试
在博客系统完成后,需要对该网站的每个功能进行测试。
通过测试来确定
每个功能是否完成了相应的效果,并对未达到理想效果的功能进行问题分析,从中找出问题所在并加以修改,修改后再测试直到达到正确结果为止。
7.1网站页面的测试
网站页面样式的测试是最直观的,在运行博客系统每个功能时,测试网页样式的是否达到相应的样式效果,是否在测试功能时部分样式发生未设计中的变化。
jQuery事件测试是否会正常执行,并消除冒泡事件的发生[11]。
7.2各权限用户的测试
由于博客系统是对不同种类的用户同时开发的,会面对不同权限用户会有不同效果,避免产生不同权限用户权限的错乱。
1)未注册用户的测试
测试未登录就可浏览的功能。
测试博客前台首页博客的显示是否正常,前台的搜索功能是否搜索到正确的结果,测试搜索结果较多时搜索分页是否正常。
测试用户注册,是测试注册的账号已经存在是否还可以注册等不正常结果。
测试未注册的用户和未登录的用户直接进入后台界面的问题是否存在。
2)注册的普通用户测试
用户登录测试,用户发布博客功能的测试,用户修改个人信息时个人信息显示是否正确,登录后用户在博客下进行的评论是否可行。
普通用户界面是否会出现管理员用户的功能,在直接进入管理界面必须遇到权限受限的情况。
3)管理员用户的测试
在管理员登陆后,后台页面中会比普通用户多出管理功能,管理员在执行管理功能时不会受到权限的影响,而管理员管理的对象只限于权限低一级的普通用户,对于管理员和超级管理员的信息不可操作。
其中的超级管理员还有对所有用户的权限可以进行更改。
8实际效果的展示
8.1后台实际效果的展示
整体后台功能布局的展示,如图8-1所示。
图8-1 后台页面效果
图8-1展示了超级用户登录后台撰写博客的界面,撰写博客运用了百度编辑插件,方便用户撰写博客自定义博客的排版。
其他整体功能还包括:
blog发布、博客列表、用户信息和密码修改的用户基本操作,与用户添加、博客修改和用户评论的管理员操作。
后台管理员博客修改功能的实际展示,如图8-2所示。
图8-2 博客修改功能
图8-2展示了管理员的修改博客的管理操作,可以对比管理员权限低的用户的所有博客进行审核和修改,为方便大量博客信息的查找加入,信息分页搜索的功能。
登录界面的实际效果,如图8-3所示。
图8-3 登录界面
用户登录页面基本功能,账号填写、密码输入和验证码的检验。
8.2后台实际效果的展示
前台首页的实际效果,如图8-4所示。
图8-4 前台首页界面
前台首页包括了,按时间发布倒叙的博客展示,热门博客的推荐和博客的搜索,还有后台登录、注册的链接。
博客内用户评论样式的效果,如图8-5所示。
图8-5 用户评论界面
评论界面首先展示了该博客下,所有各级评论,并且可以在各级评下在进行评论。
9总结
该博客实现了博客的基本功能,但还可以有更好的方案,这需要更长的时间进行完善。
使博客的功能更加的人性化,内容更加的丰富。
该校园博客系统,还使用到了Ajax异步传输技术[12],此方法运用在用户评论中;还在博客撰写功能中,使用了百度编辑器这样的第三方工具。
该网站是毕业设计,虽然在制作过程功能学习了很多的技术,但还存在着不足,由于这次制作重点放在了利用thinkPHP框架,建立博客网站上,对于前端的页面设计有明显的不足。
更多的问题会在今后的工作中再进行改进。
参考文献
[1]邹天思,潘凯华.PHP网络编程标准教程[M].北京:
人民邮电出版社,2013:
3
[2]李超.CSS网站布局实录(第2版)[M].北京:
科学出版社,2007:
5
[3]单东林,张晓菲,魏然.锋利的jQuery[M].北京:
人民邮电出版社,2009:
1.[4]马骏.PHP应用开发与实践[M].北京:
人民邮电出版社,2013:
4
[5]ThinkPHP文档小组成员. THINKPHP3.2完全开发手册[EB/OL].http:
//document.think
pH
[6]MattZandstra.深入PHP:
面向对象、模式与实践(第3版)[M].北京:
人民邮电出版社,2011:
5
[7](美)吉尔摩.PHP与MySQL5程序设计(第二版)[M].北京:
人民邮电出版社,
2007:
4
[8]软件开发技术联盟.PHP+MySQL开发实战[M].北京:
清华大学出版社,2013:
4.
[9]ruby97. 使用ThinkPHP框架快速搭建网站[EB/OL].
ticle/details/7574851,2012
[10]列旭松,陈文.PHP核心技术与最佳实践[M].北京:
机械工业出版社,2013:
33[11]NicholasC.Zakas.JavaScript高级程序设计(第2版)[M].北京:
人民邮电出版
社,2010:
17
[12]巴班.Ajax与PHP基础教程[M].北京:
人民邮电出版社,2007:
23