基于PHP的个人博客系统的设计与开发(含源文件)

摘  要

获取项目源文件,联系Q:1415736481,可指导毕设,课设

博客作为一种新的生活方式,工作方式和学习方式已经被越来越多的人所接受,并且正在改变着传统的网络社交的形式。个人出版变成了人人都可以实现的梦想,因此以博客为主的社交网络越发流行,越来越多的人选择写博客,博客正在影响和改变着我们的生活。因此开发一款功能强大,人性化的个人博客系统,必定会有很大的发展。

本网站采用了PHP+Mysql+Apache进行开发,前台用HTML嵌入PHP进行页面开发和优化,提示信息完善,界面友好有亲和力;后台采用Mysql开发和管理数据库。开发环境为Apache服务器。

经过需求分析、概要设计、详细设计、实现和测试等阶段的不断完善,最终实现了用户体验良好、界面设计美观、功能完善的个人博客系统。该系统会实现用户对日志、相片、微博、好友圈等常用的功能。

 

关键词:PHP技术   MySQL   常用功能   个人博客系统。

 

ABSTRACT

 

Blog as a new way of life, work and learning method has been accepted by more and more people, and is changing the working process of traditional network. And Personal publishing has become everyone's dream that can be easily realized, so the social media network mainly constituted by blog has become more and more popular. People choose to user personal blog and blog system is affecting and changing our lives. So, if we can develop a user-friendly Blog website with powerful functions, the perspective of it must be very bright. 

This website is developed using PHP+Mysql+Apache, foreground using PHP embedded with HTML to do page development and manage user interface, perfect prompt information, friendly interface with affinity; Background is developed and managed using Mysql. Apache server is used for development environment.

After the procedure of software designing, coding and software testing, a user-friendly personal blog  website, with beautiful UI and many useful functions has been built.

 

Keywords: PHP Technology   MySql   Common functions   Blog Management System

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第一章  绪论... 1

1.1课题来源及研究意义... 1

1.2国内外发展现状... 2

1.3本论文的结构... 2

第二章  开发工具及相关技术... 4

2.1开发工具... 4

2.2运行工具... 4

2.3 相关技术... 4

2.3.1 PHP的工作原理及相关技术... 4

2.3.2 MySQL数据库... 4

2.3.3 Apache服务器... 5

2.3.4 XHTML概述... 5

2.3.5 CSS概述... 5

2.3.6 JavaScript语言... 6

第三章  系统的需求分析... 7

3.1可行性分析... 7

3.2需求分析... 7

第四章  系统的概要设计... 11

4.1系统总体结构... 11

4.2系统数据库设计... 11

第五章  系统的详细设计与实现... 18

5.1系统的流程设计... 18

5.2系统模块设计... 19

5.3系统的编码实现... 29

第六章  系统的测试... 33

6.1测试简述... 33

6.2系统的测试... 34

6.3系统的分析... 37

总  结... 38

谢  辞... 39

参考文献... 40

 

第一章  绪论

博客管理系统是一个给人们提供抒发个人情感、人与人之间进行良好沟通的平台,博客拥有真实的内容,人们可以通过博客记录下工作、学习、生活和娱乐的点滴以及发表文章和评论,从而在网上建立一个完全属于自己的个人天地,供朋友们浏览和分享,成为当今网络最为个性化和平民化的个人展示空间。对于博客用户,只要拥有博客,拥有不同以往的全新网上生活;对于博客服务商,则必须从功能提供转型到全方位社会服务的提供,建立虚拟社会,并负责维护运行,保证博客日常生活,所以开发一个简易的个人博客系统就显得尤为重要。

1.1课题来源及研究意义

本次毕业设计的题目是基于PHP的个人博客的设计与实现,调研主要在网络、相关期刊和大学校园内进行,并在大学校园内对一些学生进行了随机访问。

在网络技术逐渐渗入社会生活各个层面的今天,传统的交流方式也面临着变革,而网络博客则是一个很重要的方向。基于Web技术的社交网络可以借助于遍布全球的Internet进行,因此交流既可以是本地进行,也可以是异地进行,大大拓展了沟通与交流的灵活性。博客在现如今这个飞速发展的网络时代已经成为人们不可或缺的一部分,博客,又译为网络日志、部落格或部落阁等,是一种通常由个人管理、不定期张贴新的文章的网站。博客上的文章通常根据张贴时间,以倒序方式由新到旧排列。许多博客专注在特定的课题上提供评论或新闻,其他则被作为比较个人的日记。一个典型的博客结合了文字、图像、其他博客或网站的链接、及其它与主题相关的媒体。能够让读者以互动的方式留下意见,是许多博客的重要要素。大部分的博客内容以文字为主。博客是社会媒体网络的一部分。Blog是继Email、BBS、ICQ之后出现的第四种网络交流方式,是网络时代的个人“读者文摘”,是以超级链接为武器的网络日记代表着新的生活方式和工作方式,更代表着新的学习方式。 

1999年末,软件研发商Dave Winer向大家推荐Edit This Page网站,Jeff A. Campbell发布了Velocinews网站。所有的这些服务都是免费的,他们的目的也很明确:让更多的人成为博客,来网上发表意见和见解。

网络作为21世纪信息传递的巨大载体,在信息社会中扮演者一个不可或缺的角色。随着互联网技术的高速发展,生活节奏的加快,博客也被越来越多的人选择作为交流的工具。博客是目前Internet上最流行、最时尚的应用。其内容有时效性,并且一般是分类,可通过评论等形式实现作者与读者的交流,同时提供有符合标准的内容摘要。作为一种新的生活方式、新的工作方式和新的学习方式以及被越来越多的人接受,并且正在改变着传统的网络和社会结构。网络信息不再是虚假的不可验证的;交流和沟通更有明确的选择和方向性;个人出版变成了人人都可以实现的梦想。博客正在影响和改变着我们的生活。

在网络高速发展的今天个人博客给人们提供了良好的互动沟通的平台。使用博客的网民人数众多,博客的内容丰富多样,人们可以通过博客讨论工作、学习、生活和娱乐以及对个人近期状况有所了解,任何人都可以参与的互动,博客已成为当今网络最为多元化和平民化的互动交流的空间和平台。对于网民,只要有博客,就可以超越现实生活,拥有不同以往的全新网上生活

本网站基于B/S架构,使用PHP技术、MySQL数据库和Apache服务器。MySQL数据库搭配PHP和Apache服务器可组成良好的开发环境,完全可以满足此次设计的需要。

1.2国内外发展现状

随着Internet的迅速发展,人们的学术交流已经不再局限于面对面的语言交流或学术报刊的文字交流,而是开始利用Internet上各种方便快捷的方式。如:专业学术系统、专门的BBS或者电子邮件等来进行交流和传播。在上亿的中国博客用户中平均每6~7天更新一次博客,活跃的博客用户数(一周内有更新的博客)达到上千万,约15%的用户每周更新博客,同时,大约有4%的用户每天都在更新博客。在更新的博客中,约45%的博客文章在500个汉字以内,500~1000汉字的博客文章约占16.5%,越是长篇大论的文章在博客中所占比例越少。

欧美和日本的Blog业起步比中国早,哪里有一些非常成熟的托管站。如推特(Twitter)就很有名,因其创新的时间轴,而受到用户的热烈追捧。推特(Twitter)发起于2006年7月,他的主要竞争对手就是Facebook,Facebook是一个社交网络服务网站,于2004年2月4日上线。Facebook是美国排名第一的照片分享站点,每天上载八百五十万张照片。

而国内的博客起步较晚,但在基于BBS和QQ空间的用户基础上,新浪博客与搜狐博客发展迅速,短短几年内已有数千万的用户基础。

1.3本论文的结构

本次课题主要研究对象是个人博客席通风。主要是针对解决目前微博管理中存在的问题,为顾客提供更便利服务的同时也为经营者带来更多的效益而进行了各项研究。系统采用目前网站开发的主流技术PHP技术,基于Windows 7操作系统开发,并采用了MySQL数据库。

本次开发按照软件工程的瀑布模型进行,与之相应的,论文结构如下:

  • :绪论。包含内容有,介绍课题来源、国内外发展情况、以及论文结构。
  • :开发工具及相关技术。介绍本系统开发所用的所有工具及技术。
  • :系统的需求分析。包括系统的可行性分析,大致的功能模块。
  • :系统的概要设计。包括系统的总体结构,主要功能模块设计以及数据库设计。
  • :系统的详细设计与实现。包括系统的总体流程,以及主要功能模块的详细设计。
  • :系统的测试与分析。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第二章  开发工具及相关技术

 

2.1开发工具

Zend Studio是Zend Technologies开发的PHP语言集成开发环境,也支持HTML和JS标签,但只对PHP语言提供测试支持。因为是同一个公司的产品,所以提供的Zend Framework方面的支持比其他软件好。Zend Studio是屡获大奖的专业PHP集成开发环境,具备功能强大的专业编辑工具和调试工具,支持PHP语法加亮显示,语法自动填充,书签,语法自动缩排和代码复制等功能,内置一个强大的PHP代码调试工具,支持本地和远程调试模式,支持多种高级调试功能。

2.2运行工具

XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建 XAMPP 软件站集成软件包。这个软件包原来的名字是LAMPP,但是为了避免误解,最新的几个版本就改名为 XAMPP 了。它可以在Windows、Linux、Solaris、Mac OS X 等多种操作系统下安装使用,支持多语言:英文、简体中文、繁体中文、韩文、俄文、日文等。

2.3 相关技术

2.3.1 PHP的工作原理及相关技术

PHP,一个嵌套的缩写名称,是超级文本预处理语言的英文缩写。PHP是一种HTML内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。

PHP独特的语法混合了C、Java、Perl以及PHP自创语法。它可以比CGI或者Perl更快速的执行动态网页。PHP是将程序嵌入到HTML文档中去执行,做出的动态页面与其他的编程语言相比,执行效率更高;与同样是嵌入HTML文档的脚本语言JavaScript相比,PHP在服务器端执行,充分利用了服务器的性能;PHP执行引擎还会将用户经常访问的PHP程序驻留在内存中,其他用户再一次访问这个程序时就不需要重新编译程序了,只要直接执行内存中的代码即可,这也是PHP高效率的体现之一。

PHP具有非常强大的功能,所有CGI或者JavaScript的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。

2.3.2 MySQL数据库

MySQL 数据库 MySQL技术是信息系统的一个核心技术。是一种计算机辅助管理数据的方法,它研究如何组织和存储数据,如何高效地获取和处理数据。是通过研究数据库的结构、存储、设计、管理以及应用的基本理论和实现方法,并利用这些理论来实现对数据库中的数据进行处理、分析和理解的技术。即:数据库技术是研究、管理和应用数据库的一门软件科学。数据库技术是现代信息科学与技术的重要组成部分,是计算机数据处理与信息管理系统的核心。数据库技术研究和解决了计算机信息处理过程中大量数据有效地组织和存储的问题,在数据库系统中减少数据存储冗余、实现数据共享、保障数据安全以及高效地检索数据和处理数据。MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购。对于Mysql的前途,没有任何人抱乐观的态度.目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

2.3.3 Apache服务器

Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将PHP/Perl/Python等解释器编译到服务器中。Apachehttp server是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。

2.3.4 XHTML概述

XHTML是The Extensible HyperText Markup Language(可扩展超文本标识语言)的缩写。HTML是一种基本的WEB网页设计语言,XHTML是一个基于XML的标记语言,看起来与HTML有些相象,只有一些小但却重要的区别,XHTML是一个扮演着类似HTML的角色的XML。所以从本质上说,XHTML是一个过渡技术,结合了部分XML的强大功能及大多数HTML的简单特性。

2.3.5 CSS概述

CSS是英语Cascading Style Sheets(层叠样式表单)的缩写,它是一种用来表现HTMLXML等文件样式的计算机语言。

CSS目前最新版本为CSS3,是能够真正做到网页表现与内容分离的一种样式设计语言。相对于传统HTML的表现而言,CSS能够对网页中对象的位置排版进行像素级的精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力,并能够进行初步交互设计,是目前基于文本展示最优秀的表现设计语言。CSS能够根据不同使用者的理解能力,简化或者优化写法,针对不同人群有较强的易读性。

2.3.6 JavaScript语言

JavaScript-Sun公司的注册商标,是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。它最初是由网景公司(Netscape)Brendan Eich设计的,是一种动态、弱类型、基于原型的语言,内置支持类。

Ecma国际以JavaScript为基础来制定ECMAScript标准。JavaScript也可以用于其它场合,如服务器端编程。完整的JavaScript实现包含三个部分:ECMAScript、文档对象模型、字节顺序记号。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第三章  系统的需求分析

 

需求分析是指理解用户需求,就软件功能与客户达成一致,估计软件风险和评估项目代价,最终形成开发计划的一个复杂的过程。简言之,需求分析的任务就是解决“做什么”的问题,就是要全面地理解用户的各项要求,并准确地表达所接受的用户需求。需求分析之所以重要,就因为它具有决策性,方向性,策略性的作用,它在软件开发的过程中具有举足轻重的地位。

3.1可行性分析

可行性分析(Feasibility Analysis),是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会等方面进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。该系统的可行性分析包括以下几个方面的内容:

1、经济可行性

由于开发此博客管理系统所需的硬件(计算机及相关硬件)和软件环境(PHP+MySQL),市场上都容易购买到或从相关网站下载,系统成本主要集中在本管理系统的开发与维护上,对用户不造成过重的经济负担,而且,目标系统不是很复杂,开发的周期较短,人员经济支出不大,所节省的大量人力、财力产生的效益将远远大于本管理系统的开发成本,所以从经济方面讲开发此系统是可行的。

2、技术可行性

本系统采用PHP+Mysql+Apache进行开发,其中前台用HTML嵌入PHP进行页面开发和管理用户界面,提示信息完善,界面友好有亲和力;后台采用Mysql数据库开发和管理数据库。本系统的开发环境使用现在特别流行的开源Apache服务器,使用方便、运行稳定、安全可靠。PHP+Mysql+Apache这个国际公认的网站开发黄金组合,在博客系统开发上,得到广泛的应用。如网易博客、百度空间、新浪博客等大型博客网站。综上所述,本系统在技术方面是可行的。

3、运行可行性

本软件是为个人用户开发的,使用本软件的用户对象是个人,由于本网站要设计成友好的界面,用户只需懂得上网,就能轻松使用本博客的功能,所以从以上几个方面的分析来看,开发本博客是完全可行的。

3.2需求分析

本系统是一个基于Web的网上博客管理系统,系统基于Web的工作界面,使网络爱好者无论身处何地,都能在浏览器中直接对新闻进行录入、浏览、修改、删除、查阅等新闻管理工作。在操作使用上十分方便,通过Web浏览器就可使用本系统,同时所有的操作都是基于Web的的操作方式,如:链接、按钮、文本框等等。所有的操作通过浏览器完成。

3.2.1系统定义

本系统是针对注册用户个人开发的基于PHP的个人博客系统,系统用户为注册用户。

考虑到个人博客的实用性,本系统采用分栏布局,将常用的博客导航栏(包括首页、个人主页、好友、在线游戏等按钮)、全站搜索引擎、头像设置模块、每日推荐和人气之星作为分模块嵌入至每一个主模块的相应位置,方便用户在任何界面可以对以上各项进行方便快捷的操作。博客的主模块分为注册登录、首页、日志、相册、好友圈、在线游戏等。可以基本实现对日志、相册、微博和用户好友的增删改查。

3.2.2功能需求分析

个人博客系统主要需要实现以下基本功能:

(1)用户注册和登录

这部分功能又分为用户注册、用户登录、用户退出三个部分。

用户注册:游客将个人的信息存储到博客网站的数据库中,注册时要求填写用户的各种详细信息,包括id、真实姓名、Password、性别、生日、其它辅助信息。凡是符合要求的游客都可以注册成功,成为本博客的正式用户。系统接受这些信息并存储在服务器端的数据库中。

用户登录:主要用于验证博客网站用户信息的真实身份,以便对博客网站进行管理和维护。通过注册后的用户用个人注册的用户名,密码登录到网站。网站检测用户的用户名,密码并给予其相应的权限对博客网站进行操作。

用户退出:已经登陆的用户可以退出,释放自己所占有的各种信息资源。

(2)微博状态管理

用户可以发布、修改、删除自己的状态,好友们可以针对此条状态进行回复和分享。

(3)文章管理

文章管理主要有文章的发表、查询、浏览、评论和删除功能。

文章的发表:注册用户可以发表自己的文章,文章包括主题、正文、表情、图片等信息,作者通过各种元素来展示自己的想法和思想。系统接受这些信息并且存储在服务器端的数据库中。

文章的删除:注册用户可以删除自己已经发表的文章内容和各项信息,系统自动在服务器端数据库中删除这些记录。

文章的浏览:访客和注册用户根据所获得的用户权限获取服务器端数据存储的各篇文章并且浏览阅读文章的所有信息,包括标题、正文、表情、图片以及其它读者的留言评论。

文章的评论:文章的读者可以评论和回复所阅读的文章,发表自己的看法。系统自动将这些评论存储在服务器端的数据库中,并且可供博客作者以及其它读者浏览。

文章的查询:注册用户可以按文章题目或作者来查询想要查的文章。

(4)图片管理

图片管理主要分为两个部分:相册管理和相片管理

相册管理:用户可以通过相册管理模块来新建、删除、修改和浏览相册

图片管理:当用户点击相应相册时,进入该相册的图片管理模块,可以添加,浏览、删除和浏览相片。注册用户可以添加自己喜欢的图片描述,还可以查询和浏览系统中的所有图片信息。而访客只能浏览博客系统中的所有图片。

(5)留言板管理

注册用户在登录的情况下可以在他人的博客留言,留言在博主的审核通过后发布,同时博主也可以对已发布的留言进行删除操作。

(6)朋友圈管理

注册用户可以添加自己的朋友信息到朋友圈,可以再浏览和查询朋友信息的前提下,进行删除朋友信息操作。

(7)在线游戏

内置了很多网上热门游戏,并链接到相关游戏页面,当用户点击游戏是,跳转至相对应界面。

(8)头像管理

用户可以通过该模块上传、修改自己的博客头像。

(9)好友活跃度排名

通过查询相关数据库,该模块可以显示用户好友的活跃度排名以及博客的访问量。

3.2.3系统用例图

用例图中包含的元素除了系统边界、角色和用例,另外就是关系。关系包括用例之间的关系,角色之间的关系,用例和角色之间的关系。由于角色实质上也是类,所以它拥有与类相同的关系描述,即角色之间存在泛化关系,泛化关系的含义是把某些角色的共同行为提取出来表示为通用的行为。下面的用例图描述了本系统各个角色以及角色和用例之间的关系,如图3-1所示。

 

图3-1   用户用例图

 

第四章  系统的概要设计

 

4.1系统总体结构

根据个人博客系统本设计主要实现用户注册、文章管理、微博管理、留言管理、评论管理相册管理和搜索引擎等功能。

根据需求分析,设计出个人博客系统的总体结构。系统功能结构图如图4-1所示。

 

 

图4-1  系统功能结构图

 

4.2系统数据库设计

4.2.1实体-联系图(E-R图)

实体联系图:简记E-R图,是指以实体、关系、属性三个基本概念概括数据的基本结构,从而描述静态数据结构的概念模式。根据以上各节对系统所做的需求分析和系统设计,规划出了本系统中使用的数据库实体及实体间的联系。

本系统设计规划出来的实体共有11个,它们分别是注册用户、微博、微博评论、朋友圈、最近访客、相片、相册、相片评论、日志、日志评论和留言板,下面对几个主要的实体进行说明

注册用户实体属性图如图4-2所示。

 

图4-2 注册用户实体属性图

 

日志实体属性图如图4-3所示。

 

图4-3  日志实体属性图

 

留言板实体属性图如图4-4所示。

 

图4-4  留言板实体属性图

 

根据个实体之间关系可知,整个系统的E-R图如图4-5所示。

 

 

图4-5  系统总E-R图

4.2.2系统数据库关系

根据E-R图,建立系统各个数据库之间的关系,如图4-6所示

 

图4-6  系统数据库关系

4.2.3数据库表结构设计

根据总体的E-R图,可以设计出如下表结构。数据库中共11张表格,表明分别为:USRE,MICROBLOG,MICROBLOG_COMMENT,FRIEND,LATEST_GUEST,PHOTO,PHOTO_LIST,PHOTO_COMMENT,ARTICLE,ARTICLE_COMMENT,BLOG_COMMENT。分别对应:注册用户表,微博表,微博评论表,朋友圈表,最近访客表,相片表,相册表,相片评论表,日志表,日志评论表,留言板表。

注册用户表的主键是会员号,存储了通过登陆主页注册的用户信息,作为系统使用者中的一个主要角色,会员号也是其他表的外键。其详细表结构设计如表4-1 所示。

表 4-1  注册信息表

列名

数据类型

长度

是否主键

是否外键

允许空

说明

ID

INT

11

用户ID

Name

VARCHAR

30

用户名

TureName

VARCHAR

20

用户真实姓名

Password

VARCHAR

10

用户密码

Sex

CHAR

1

用户性别

Age

TINYING

4

用户年龄

BlogTitle

VARCHAR

50

博客名字

Pop

INT

5

博客活跃度

 

微博表的主键是微博号,存储了微博发布的内容、时间、发布者等信息。详细表结构设计如表4-2所示。

表4-2  微博信息表

列名

数据类型

长度

是否主键

是否外键

允许空

说明

ID

INT

11

微博ID

AuthorID

INT

11

发布者ID

Author

VARCHAR

30

发布者

Content

TEXT

 

微博内容

SubDT

DATETIME

 

发布时间

 

微博评论信息表的主键是评论ID,存储了微博评论的内容、评论者与被评论者、发布时间等信息。其详细表结构设计如表4-3所示。

表4-3微博评论信息表

列名

数据类型

长度

是否主键

是否外键

允许空

说明

ID

int

11

评论ID

MicroBlogID

int

11

微博ID

GuestID

int

11

访客ID

Guest

varchar

30

访客名字

HostID

int

11

微博发布者ID

Content

text

 

微博内容

SubDT

datetime

 

发布时间

Isread

int

4

访问量

Reply_To

int

11

回复来自于

 

好友圈信息表的主键用户ID,存储了注册用户好友的详细信息。其详细表结构设计如表4-4所示。

表4-4  好友圈信息表

列名

数据类型

长度

是否主键

是否外键

允许空

说明

ID

int

10

好友ID

GuestID

int

10

访客ID

GuestName

varchar

30

访客名字

HostID

int

10

主人ID

HostName

varchar

30

主人名字

State

int

1

标注

 

最近访客表的主键是用户ID,该表存储了最近9个好友来访。详细表结构设计如表4-5所示。

表4-5  最近访客表

列名

数据类型

长度

是否主键

是否外键

允许空

说明

ID

int

10

访客记录ID

GuestID

int

10

访客ID

HostID

int

10

主人ID

Time

datetime

 

来访时间

 

相片信息表的主键是相片ID,该表存储了一张相片的详细信息,详细表结构设计如表4-6所示。

表4-6  相片信息表

列名

数据类型

长度

是否主键

是否外键

允许空

说明

ID

int

11

相片ID

Name

varchar

30

相片名

AuthorID

int

11

上传者ID

Author

varchar

30

上传者

SubDT

datetime

 

发布时间

List_

carchar

11

 

 

相片评论表表的主键是用户ID,此表存储了注册用户每一张相片的评论详细信息。详细表结构设计如表4-7所示。

 

表4-7  相片评论表

列名

数据类型

长度

是否主键

是否外键

允许空

说明

ID

int

11

评论ID

PhotoID

int

11

相片ID

Author

varchar

30

发布者

AuthorID

int

11

发布者ID

Content

text

 

评论内容

SubDT

datetime

 

发布时间

Isread

int

4

阅读量

Title

varchar

30

标题

Reply_To

varchar

30

回复来自于

 

相册信息表的主键是相册ID,此表储存了注册用户新建相册的所有信息。其详细表结构设计如表4-9所示

表4-8  相册信息表

列名

数据类型

长度

是否主键

是否外键

允许空

说明

ID

int

11

相册ID

Name

varchar

30

相册名

AuthorID

int

11

发布者ID

Author

varchar

30

发布者

SubDT

datetime

 

发布时间

Content

text

 

相册内容

 

日志信息表的主键是日志ID,储存了日志发布者、内容、发布时间、阅读量等信息。其详细表结构设计如表4-9所示。

表4-9日志信息表

列名

数据类型

长度

是否主键

是否外键

允许空

说明

ID

int

11

日志ID

UserID

int

11

用户ID

AuthorName

varchar

20

发布者ID

Title

varchar

80

日志标题

Content

text

 

日志内容

SubDT

datetime

 

发布时间

Count

int

4

0

阅读量

 

日志评论信息表的主键是用户ID,存储了日志评论的内容、评论者与被评论者、发布时间等信息。其详细表结构设计如表4-10所示。

表4-10日志评论信息表

列名

数据类型

长度

是否主键

是否外键

允许空

说明

ID

int

11

评论ID

ArcticleID

int

11

日志ID

Content

text

 

评论内容

Author

varchar

30

发布名字

AuthorID

int

11

发布者ID

SubDT

datetime

 

发布时间

Isread

int

4

访问量

Comment_Title

varchar

30

评论标题

Reply_To

int

40

回复来自于

 

留言板信息表的主键是留言ID,存储了留言板的内容、留言者与评论者、发布时间等信息。其详细表结构设计如表4-11所示。

表4-11留言板信息表

列名

数据类型

长度

是否主键

是否外键

允许空

说明

ID

int

11

留言ID

GuestID

int

20

访客ID

HostID

int

20

主人ID

Content

text

 

留言内容

SubDT

datetime

 

发布时间

Isread

int

4

访问量

Reply_To

int

11

回复来自于

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第五章  系统的详细设计与实现

 

 详细设计的主要任务是设计每个模块的详细功能、实现算法、所需的局部数据结构等。基于前面的系统总体设计和数据库设计,对个人博客系统有个初步的了解之后,在此章进入详细设计与实现阶段的任务。在这个阶段需要对总体设计阶段所阐述的基本功能进行一一具体描述并实现。

5.1系统的流程设计

根据个人博客的具体要求,设计了相关功能。总体流程如图5-1所示。

 

图5-1  系统总流程图

5.2系统模块设计

本系统有诸多重要模块:用户注册与登录,个人主页浏览,相册管理,微博管理,日志管理,搜索引擎,在线游戏,上传修改头像,朋友圈管理,活跃度排名模块等。下面详细介绍其中的几个主要功能模块的实现。

5.2.1用户注册模块

源文件:reg.hph

功能描述:用户登注册模块的功能是本博客的访客注册成为注册用户,当用户注册时必须输入用户名、密码、真实姓名等基本信息,其中用户名、密码和真实姓名为必填项,用户的“密码”和“确认密码”必须达到一致才能注册,否则提示用户两次输入密码不一致,通过Javascript进行本地验证成功后,允许用户完成注册。一切信息正确后系统会在数据库中为该用户自动生成一个用户id编号,这个编号是自动递增生成的,用来唯一标识一个用户,注册用户数据储存在USRE表中。

用户注册流程图如图5-2所示。

 

图5-2  用户注册流程图

用户注册的运行结果如图5-3所示。

 

 

图5-3  用户注册界面

 

5.2.2个人博客首页模块

源文件:blog_main.php

功能描述:博客的首页是相当重要的,这不仅仅是整个博客的第一映像,而且是展现个人博客系统的布局、美工、风格和个性的窗口。它包括博客。把这几个界面合理的组合是布局和美工的重要之处,所以个人主页顶端设置了博客的几个模块的快捷跳转按钮,可以方便快捷的跳转至相应界面。通过SELECT语句用户可以在个人主页上可以浏览好友们的最近新鲜事,当点击新鲜事时,跳转至相应的模块进行操作。主页的右侧内嵌搜索、用户头像与今日热点推荐等模块。该模块的运行结果如图5-4所示。

 

 

图5-4  首页模块运行效果图

 

搜索子模块是在“博客首页”的前提下操作的,主要由blog_search.php完成,用户可以进行全部、标题等四种方式的搜索

而今日推荐小边栏则是利用SELECT从article表里面查询日志标题按照SubDT升序排列循环显示

5.2.3日志管理模块

日志管理模块是本系统中最基础、最复杂的一个核心功能模块。文章管理模块可以分为发布日志、浏览查询日志、发表和回复日志评论、删除日志和日志评论、修改日志五个功能部分。

1.发布日志

发表博客文章主要是提供用户发表和张贴个人文章或对某些事物的独到见解等,通过发表的文章,其他用户可以发表相关评论,以便能够同来访者进行交流,是一个展示自己的网络交流平台。 发布日志活动图如图5-5所示

 

图5-5  发布日志流程图

 

这个功能主要由blog_edit.php完成。用户可以选择在文章中变换字体、字体颜色,可以插入图片、插入表情,文章编辑结束可以进行排版和预览。当点击发布后,Javascript会对日志标题这个不为空的项进行验证,如果标题为空,则提示“文章标题不得为空,请填写文章标题”。发表文章后,提交博客文章信息到数据库处理页(blog_submit.php)并保存在ARTICLE表中。在保存的过程中,系统会在数据库中为该文章自动生成一个文章ID编号,这个编号是自动递增的生成,用来唯一标识一篇文章。发布日志页面如图5-5所示。

 

图5-5  发布日志页面

 

2.日志管理其他子模块

为了便于用户对已发布文章进行操作,我将日志的浏览查询、修改、评论子模块整合为一个界面。用户日志列表与概况界面通过blog_home_1.php实现;日志的详细内容浏览和评论界面通过blog_article.php实现;用户对日志的修改界面通过链接blog_edit.php完成实现。在通过SELECT语句查询ARTICLE和ARTICLE_COMMENT两个表,用户可以浏览已发布日志的内容。通过INSERT、DELETE和UPDATE语句对数据库的操作,用户可以修改,删除日志、与此同时用户认证好友们可以通过该模块对日志进行浏览和评论。评论信息储存在ARTICLE_COMMENT表中。同时通过ARTICLE表内的Count列,该界面可以显示日志的阅读量。该模块修改和删除日志的活动图如图5-6、5-7所示

 

 

图5-6修改日志流程图

图5-7 删除日志流程图

 

日志管理页面如图5-8所示。

 

图5-8  日志管理页面

5.2.4相册管理管理模块

功能描述:主文件为blog_photo.php,该模块主要分为两个部分:相册管理和相片管理

1.相册管理

源文件为blog_photolist.php,用户可以通过相册管理模块进行新建相册和浏览相册,在保存的过程中,系统会在数据库中为该相册自动生成一个相册ID编号,相册信息保存至PHOTO_LIST中。相册管理界面如图5-9所示

 

图5-9  相册管理页面

 

2.相片管理

源文件为blog_addphoto.php和blog_photoshow.php,为相册管理下设的模块,点击进入相册后跳转该界面,用户可以在该界面对相片进行上传、删除、修改描述、查询、浏览等常规操作。用户认证好友也可以通过该界面对照片进行评论,与用户互动。相片信息与相片评论信息储存至PHOTO、PHOTO_COMMENT两个表中,相片储存在blog\img\photo\用户名 这个文件夹中。相片管理界面如图5-10所示。

 

图5-10  相片管理界面

 

3.上传相片的流程

用户上传相片时,首先要指定所传的相册,然后相片必须重新命名,名字仅限于中文、英文、“_”和数字组成,上传图片格式限定为主流的JPG和NPG。该模块的流程图如图5-11所示。

 

图5-11  相片管理流程图

5.2.5朋友圈模块

源文件:blog_friend.php

功能描述:在该模块中用户可以添加好友、浏览并搜索自己的好友,点击好友名字可以跳转至好友主页。已添加的好友信息储存在FRIEND表中。添加好友的流程图如图5-12所示。

 

图5-12  添加好友流程图

 

朋友圈界面采用双列显示,让用户简单明了的浏览好友信息。朋友圈界面如图5-13所示。

 

图5-13  朋友圈界面

 

5.2.6游戏模块

源文件:blog_game.php

功能描述:在该模块中注册用户可以点击链接进入相应游戏。该模块的界面如图5-14所示。

 

 

图5-14  游戏界面图

 

5.2.7其他信息管理模块

因为其他各个管理模块的功能与行为十分相似,在这里就不逐一绘制活动图,只对模块做简要介绍:

1、微博管理模块

源文件:blog_microblog.php

功能描述:增删改查微博、回复微博评论。

2、留言板模块:

源文件:blog_home_2.php

功能描述:好友可以对注册用户进行留言,用户针对留言可回复。

3、好友活跃度排名

功能描述:根据查阅LATEST_GUEST表,循环显示活跃度排名。

4、头像模块

源文件:blog_home.php

功能描述:修改查看用户头像。

5、个人资料模块

源文件:blog_info.php

功能描述:显示个人资料

5.3系统的编码实现

    在编码实现阶段,从最初工程的搭建,到前台视图层静态页面的编写,再到页面的美工布局,每一步都经历了无数次的错误->修改代码->重启服务器->运行的过程才最终完成了系统功能的实现。现对这个阶段中的工作做一个简要的展示。

5.3.1项目部署结构

   系统在PHP中开发时的项目部署结构图如图5-15所示。

 

 

图5-15 项目部署结构图

5.3.2系统界面浏览

下面将展示几个主要系统界面。

1、用户首页。为用户登录的默认页,主要显示了好友的新鲜事、全局搜索、今日推荐源、人气之星和通知。在顶栏内置了整个博客的快捷跳转按钮。代码:blog_main.php,blog_search.php。首页页面如图5-17所示。

 

                             

图5-17 个人博客首页页面

2、日志。可以实现日志的增删改查与好友评论。源代码:blog_home_1.php、blog_article.php、blog_edit.php。页面如图5-18所示。

 

图5-18  日志页面

3、好友管理。源代码:blog_friend.php

4、相册与相片管理。用户可以新建相册、评论相片和对相片的增删改查。源代码:blog_photo.php、blog_photolist.php、blog_photoshow.php、blog_addphotolist.php、blog_addphoto.php。如图5-19所示。

 

 

图5-19  相册与相片管理页面

5、在线游戏。源代码:blog_game.php。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第六章  系统的测试

 

6.1测试简述

软件测试是软件开发过程中的一个重要环节,是为了发现程序中的错误而执行程序的过程;好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;成功的测试是发现了至今为止尚未发现的错误的测试。软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计出一批测试用例,并利用测试用例来运行程序,以发现程序错误的过程。一般的,有以下两种测试方法。

1、黑盒测试

黑盒测试时完全不考虑程序内部的结构和处理过程,只按照规格说明书的规定来检查程序是否符合它的功能要求。黑盒测试是在程序接口进行的测试,又称为功能测试。黑盒测试要求测试者在测试时不能使用与被测系统内部结构相关的知识或经验,它适用于对系统的功能进行测试。

黑盒测试的优点有:

1)比较简单,不需要了解程序内部的代码及实现;

2)与软件的内部实现无关;

3)从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;

4)基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;

5)在做软件自动化测试时较为方便。

黑盒测试的缺点有:

1)不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;

2)自动化测试的复用性较低。

本系统在测试阶段采用的就是黑盒测试。

2、白盒测试

白盒测试是将程序看作是一个透明的盒子,也就是说测试人员完全了解程序的内部结构和处理过程。所以测试时按照程序内部的逻辑测试程序、检验程序中的每条通路是否都能按预定的要求正确工作。白盒测试又称为结构测试。它需要知道程序内部的设计结构及具体的代码实现,并以此为基础来设计测试用例。

白盒测试的优点有:

知道所设计的测试用例在代码级上哪些地方被忽略掉,它的优点是帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题。

白盒测试的缺点有:

1)程序运行会有很多不同的路径,不可能测试所有的运行路径;

2)测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;

3)系统庞大时,测试开销会非常大。

除了上述两种测试方法外,从是否执行程序的角度又分为静态测试动态测试。从软件开发的过程按阶段划分有单元测试集成测试系统测试验收测试。测试过程按4个步骤进行,即单元测试、集成测试和系统测试及α-β版测试。

    不论采用何种测试方法,只要对每一种可能的情况都进行测试,就可以得到完全正确的程序。包含所有可能情况的测试成为穷尽测试。但对于实际程序而然,穷尽测试是不可能的。所以本网站选用黑盒测试,采用等价划分法来测试用例。

6.2系统的测试

6.2.1测试用例

测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序是否满足特定的需求。下面将记录在本次系统测试过程中的几个主要测试用例,如表6-1和6-2所示。

表6-1  用户注册模块测试用例

用例说明

用户注册模块的测试

测试需求

访客在注册界面输入信息并点击“提交”

测试用例

1、什么都没有输入

2、输入用户名123

3、输入用户名haifeng

4、输入密码12345,确认密码输入23456

5、两次输入密码12345

6、输入真实姓名“海峰”

期望输出

1、提示“请输入用户名”信息,停留在注册页面

2、提示“用户名需由6-15位的字母和数字组成”

3、提示“请填写密码”

4、提示“两次密码输入不一致,请再次输入”

5、提示“请输入真实姓名”

6、提示“注册成功”,页面跳转至登陆页面

实际输出

1、提示“请输入用户名”信息,停留在注册页面

2、提示“用户名需由6-15位的字母和数字组成”

3、提示“请填写密码”

4、提示“两次密码输入不一致,请再次输入”

5、提示“请输入真实姓名”

6、提示“注册成功”,页面跳转至登陆页面

 

 

 

 

表6-2  日志管理测试用例

用例说明

用户日志管理模块所有功能的测试

测试需求

以注册用户身份登录到博客

测试用例

1、点击主页面导航栏的“个人主页”

2、点击下拉菜单中的“笔墨留香”

3、点击已发布的随意一篇日志

4、点击修改日志

5、点击完成修改按钮

6、点击“确认”

7、点击日志删除按钮

8、在弹窗下点单击“取消”

9、继续点击“确认”

10、点击“写新日志”按钮

11、测试日志编写框内的各项功能(如字体颜色)

12、点击完成

13、填写标题“123”并点击完成

14、切换用户浏览该日志并评论

15、切换原用户

16、点击通知栏

期望输出

1、跳转到“个人主页”页面,显示个人主页页面的各项功能

2、跳转至日志主界面

3、跳转到该日志浏览界面

4、跳转至日志编辑界面,并显示日志编辑框

5、提醒“确认提交/修改本文”

6、显示修改成功并跳转至日志主页面

7、提示“确认删除?”

8、“确认删除”提示框消失,页面维持不动

9、显示删除成功并跳转日志主页

10、跳转日志编写界面

11、成功显示

12、提示“请填写日志标题”

13、提示日志成功上传并跳转日志浏览界面

14、进入该日志浏览界面并显示只可评论

15、通知栏提示“***好友评论了你的日志123”

16、跳转至日志浏览界面,可以查看好友评论

实际输出

1、跳转到“个人主页”页面,显示个人主页页面的各项功能

2、跳转至日志主界面

3、跳转到该日志浏览界面

4、跳转至日志编辑界面,并显示日志编辑框

5、提醒“确认提交/修改本文”

6、显示修改成功并跳转至日志主页面

7、提示“确认删除?”

8、显示删除成功并跳转日志主页

9、“确认删除”提示框消失,页面维持不动

10、跳转日志编写界面

11、成功显示

12、提示“请填写日志标题”

13、提示日志成功上传并跳转日志浏览界面

14、进入该日志浏览界面并显示只可评论

15、通知栏提示“***好友评论了你的日志123”

16、跳转至日志浏览界面,可以查看好友评论

 

6.2.2测试结论

通过对系统的功能进行黑盒测试,大多数情况得到的实际输出和期望期望输出一致,由此可以推断,本系统的功能基本正常。对于报错页面也已经找明原因并做了修改,再次使用相同的测试用例进行测试时,全部成功的通过了测试,系统运行正常。

部分测试截图如图6-1至6-4所示。

 

 

图6-1  相册与相片管理页面

 

图6-2  相册与相片管理页面

 

 

 

图6-3  相册与相片管理页面

图6-4  相册与相片管理页面

6.3系统的分析

6.3.1缺陷与限制

由于开发的时间段及开发者能力有限,只初步具备了个人博客系统的基本功能。对于以下功能还有待进一步完善

1、功能不是很完善。

    2、界面过于简答,亲和力不强。

6.3.2总体评价

软件基本达到设计要求,功能完整,用户界面良好,错误处理正确,且能正确提示错误种类。但是在黑盒测试中也发现了一些问题,软件缺乏一些极端错误操作的处理。修改后再次测试相同用例时得到了正确的提醒。总体说来,预期功能全部实现,完全满足应用要求,软件通过测试。

6.3.3今后进一步研究的方向

1)对页面进行美化,现在的界面虽然在操作简易上符合要求,但在页面的多样化上还存在不足,应当在PHP页面的设计上运用更多更丰富的结构。

2)对整个系统的安全控制进行升级,如安全退出和程序的并发性,使系统向真正的网站靠拢。

3)对数据结构及代码进行优化,使得系统运行更加快速稳定,降低服务器资源占用。

 

 

 

 

 

 

 

 

 

 

 

 

 结

 

至此,个人博客系统的设计与开发就基本完成了。此次毕业设计历时三个月,短短三个月中,我把自己大学期间所有的知识第一次连贯了起来,从最初的生疏到后来的灵活运用,我真正的体验到了学以致用的乐趣。

在这次的系统开发中,我严格按照软件工程的中的瀑布模型来规范流程,从需求分析一直到系统测试,每一个环节都对系统的实现起着至关重要的作用,不能忽视。在这期间,我学习了PHP开发,B/S框架,MySQL数据库管理系统,以及一些有利于软件开发的相关技术,并将这些技术应用到本系统中,逐步进行完善。在这个过程中,我深深地感到自己的软件开发综合能力得到了提升。此外,不只是知识的巩固与扩展,我还学会了独立地分析问题、解决问题。归纳起来,主要有以下几点:

1、将理论应用于实践。平时学的课程主要以理论知识为主,真正实践的时候很少,本次毕业设计给了我这样一个实践的机会,让我发现了很多不足之处,并加以改正。

2、一开始对需求分析过程的不够重视,导致后期的模块功能存在一些不完善的地方。通过本次毕业设计,我清楚地认识到系统分析的重要性,系统分析越充分,系统定义越具体,系统的设计与开发工作就越有效率,系统的质量也越有保障。

3、设计之初,我查询了很多软件设计的工具书,对其中用到的技术进行研究、学习,尤其是对代码的编写,做到了对代码功能的清晰认识。在此基础上,我开始着手自己的毕业设计,从细节做起。

另外,通过这次毕业设计,我深深地明白了知识交流的重要性,从通过书本与作者的交流,到在网上论坛和技术前辈的求教,再到和周围身边同学的讨论,每一次的交流都给我带来技术的进步和新的想法,真的是受益匪浅。

 

 

 

 

 

 

 

 

 

 

 

 

  辞

 

此次毕业设计历时三个月,这充实而忙碌的三个月将成为我大学生活中浓墨重彩的一笔。在此论文完成之际,谨向我的指导老师李博老师致以深深地感谢。这三个月中,从最初毕业论文的选题到最后论文的撰写,老师都一直耐心细致的指导我。尤其在系统的开发过程中,老师丰富的知识和经验都给我带来了极大的帮助。在我编程遇到瓶颈,几欲放弃的时候,也是老师安慰我,让我重新找回了信心。

感谢软件学院的诸位老师们,还记得初入学的我,因为第一次离家而忐忑不安,正是老师们精彩的讲课抚慰了我的情绪,为我打开了一扇新的门。在一次次追随着老师们渊博的知识和丰富的经验中,我深深地感动于老师们治学的严谨和对学生的赤诚之心。另外,向在工作之余还要抽出时间对我的论文进行评阅及考核并提出宝贵意见的各位教授、导师致以最诚挚的谢意!

感谢大连交通大学对我的培养,这五年将是我人生中永远的财富。在这五年中,从最初的对软件学习的憧憬,到真正的接触软件,从老师们那里接受专业的学科知识,在学习各项技能的同时我也真正的点燃了自己对这个行业的热情。日常的学习生活,点滴的积累,都全面的提升了我的能力与素养。五年的时光让我收获了一个更加成熟、自信的自己,也让我能够在将来也以交大学子的身份,不断的走向前去!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

参考文献

 

  1. 潘凯华,刘中华等著.  PHP从入门到精通[M]. 北京:清华大学出版社,2010:23-37.
  2. 温谦,前沿科技著. HTML+CSS网页设计与布局从入门到精通[M]. 北京:人民邮电出版社,2008:34-55.
  3. 于菏云著. PHP+MySQL网站开发全程实例[M]. 北京:清华大学出版社,2012:73-82.
  4. 孔祥盛著. PHP编程基础与实例教程[M]. 北京:人民邮电出版社,2011:45-67.
  5. 吴津津,刘昊,田睿等著. PHP与MySQL权威指南[M]. 北京:机械工业出版社,2011:134-145.
  6. 丁月光,孙更新,闫吉辉著. PHP+MySQL动态网站开发[M]. 北京:清华大学出版社,2008:123-135.
  7. 谭贞军著. 深入体验PHP项目开发[M]. 北京:清华大学出版社,2011:78-98.
  8. 王石,杨英娜著. 精通PHP+MySQL应用开发[M]. 北京:人民邮电出版社,2006:12-23.
  9. 列旭松,陈文著. PHP核心技术与最佳实践[M]. 北京:机械工业出版社,2012:56-78.
  10. 姜承尧著. MySQL技术内幕:SQL编程[M]. 北京:机械工业出版社,2012:46-67.
  11. 戴一平. 计算机与现代化:MVC设计模式在PHP开发中的应用[J]. 中国出版,2011(3):34-43.

 

猜你喜欢

转载自blog.csdn.net/qq_36300579/article/details/89165020