PHP博客系统的设计与实现.doc_第1页
PHP博客系统的设计与实现.doc_第2页
PHP博客系统的设计与实现.doc_第3页
PHP博客系统的设计与实现.doc_第4页
PHP博客系统的设计与实现.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

PHP博客系统的设计与实现摘要:本文阐述了一个PHP博客系统的设计与实现,并对系统的总体结构设计和功能模块作了详细的说明。该平台在实现方法上采用Apache服务器技术,以MySQL5作为系统数据库,主要功能定位于通过互联网在浏览器与服务器之间进行信息的传输。整个系统的结构力求清晰明了,方便用户使用。关键词:PHP技术,B/S结构,数据库,博客PHP博客系统的设计与实现一、绪论 互联网技术的广泛应用,对整个世界政治、经济、文化等各方面产生了十分广泛和深远的影响。它奇迹般地崛起、爆炸般地扩容,令全世界瞩目。互联网技术之所以能在如此短的时间内获得社会各方面的认可,并在全球范围内推广应用是因为互联网拥有庞大的信息资源、给人类提供全新的交往方式、存在着巨大的商机、虚拟现实技术的广泛应用等等,是促进互联网发展的重要因素。博客,又译为网络日志、部落格或部落阁等,是一种通常由个人管理、不定期张贴新的文章的网站。博客上的文章通常根据张贴时间,以倒序方式由新到旧排列。许多博客专注在特定的课题上提供评论或新闻,其他则被作为比较个人的日记。一个典型的博客结合了文字、图像、其他博客或网站的链接、及其它与主题相关的媒体。能够让读者以互动的方式留下意见,是许多博客的重要要素。大部分的博客内容以文字为主,仍有一些博客专注在艺术、摄影、视频、音乐、播客等各种主题。博客是社会媒体网络的一部分。Blog是以网络作为载体,简易迅速便捷地发布自己的心得,及时有效轻松地与他人进行交流,再集丰富多彩的个性化展示于一体的综合性平台。而且为了方便使用,该系统设计风格采用简洁易用的理念,以易于上手为出发点,以满足开发学习需求为基本目标的开放式平台。(一)课题来源本课题根据我大学在校期间所自学的PHP开发教程结合现在网上博客系统的日益发展的需要所定,这个博客系统的编写是对我大学期间所学知识的一个总结。系统的整个编写过程是在老师和书本的指导下,我独立完成。(二)课题的目的和意义 通过本课题的研究和实践,来总结大学四年所学到的网路编程技术以及对此技术的应用,一个是对自身学习的检验,另一个是通过本次设计对日后的工作有一定的帮助。之所以选择博客系统作为我的毕业设计,是因为现在是一个网络时代,网络给人们的生活带来了很大的方便,同时,博客系统的意义在于博客是一种给予用户极大参与空间的在线媒体,其最大的特点是赋予了每个人创造并传播信息的能力,具有参与、公开、交流、对话、社区化、连通性等特征。博客系统可以实现文章管理的数字化、信息化、智能化,是打破传统报刊杂志发表文章方式的一种新尝试。本系统主要为用户提供发表文章、浏览文章等功能,用户通过Internet可以发表一些自己撰写的文章以和其他网友进行交流。力求设计出界面友好,操作简单的博客程序,使其具有一定的应用价值。(三)本系统的特点由于技术的限制,本系统不能和网络上成熟的博客系统相提并论,只是一个博客系统的模型,但是它实现了博客系统的基本信息传输功能。和网上的博客系统相比较,主要的特点就是使用方便,界面简洁易上手,没有多余的附加画面。选择使用PHP语言作为博客系统的主要编程语言,是因为PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。它可以比 CGI 或者 Perl 更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。(四) PHP语言的发展概况1PHP语言的诞生 PHP 最初是1994年Rasmus Lerdorf创建的,刚刚开始只是一个简单的用Perl语言编写的程序,用来统计他自己网站的访问者。后来又用C语言重新编写,包括可以访问数据库。在1995年以Personal Home Page Tools (PHP Tools) 开始对外发表第一个版本,Lerdorf写了一些介绍此程序的文档,并且发布了PHP1.0。在这早期的版本中,提供了访客留言本、访客计数器等简单的功能。以后越来越多的网站使用了PHP,并且强烈要求增加一些特性,比如循环语句和数组变量等等,在新的成员加入开发行列之后,在1995年中,PHP2.0发布了。第二版定名为PHP/FI(Form Interpreter)。PHP/FI加入了对mySQL的支持,从此建立了PHP在动态网页开发上的地位。到了1996年底,有15000个网站使用 PHP/FI;时间到了1997年中,使用PHP/FI的网站数字超过五万个。而在1997年中,开始了第三版的开发计划,开发小组加入了 Zeev Suraski 及 Andi Gutmans,而第三版就定名为PHP3。2000年,PHP4.0又问世了,其中增加了许多新的特性。2PHP语言的发展 PHP 原本的简称为 Personal Home Page,是Rasmus Lerdorf 为了要维护个人网页,而用C语言开发的一些CGI工具程序集,来取代原先使用的 Perl 程序。最初这些工具程序用来显示 Rasmus Lerdorf 的个人履历,以及统计网页流量。他将这些程序和一些表单直译器整合起来,称为 PHP/FI。PHP/FI 可以和数据库连接,产生简单的动态网页程序。Rasmus Lerdorf 在1995年6月8日将 PHP/FI 公开释出,希望可以透过社群来加速程序开发与寻找错误。这个释出的版本命名为 PHP 2,已经有今日 PHP 的一些雏型,像是类似 Perl 的变量命名方式、表单处理功能、以及嵌入到 HTML 中执行的能力。程序语法上也类似 Perl,有较多的限制,不过更简单、更有弹性。3PHP语言的成熟 在2000年5月22日,以Zend Engine 1.0为基础的PHP 4正式释出,2004年7月13日则释出了PHP 5,PHP 5则使用了第二代的Zend Engine5。PHP包含了许多新特色,像是强化的面向对象功能、引入PDO(PHP Data Objects,一个存取数据库的延伸函数库)、以及许多效能上的增强。目前PHP 4已经不会继续更新,以鼓励用户转移到PHP 5。2008年PHP 5成为了PHP唯一的有在开发的PHP版本。将来的PHP 5.3将会加入Late static binding和一些其他的功能强化。PHP 6 的开发也正在进行中,主要的改进有移除register_globals、magic quotes 和 Safe mode的功能。至此,PHP语言已经发展的相当成熟,在网络上迅速流行起来。(五)PHP语言的特点PHP语言的特点总结主要有以下10点:1、开放的源代码:所有的PHP源代码事实上都可以得到。2、PHP是免费的。3、PHP的便捷性 : PHP十分便捷,学习简单。4、基于服务器端:由于PHP是运行在服务器端的脚本,可以运行在UNIX、LINUX、WINDOWS下。5、嵌入HTML:因为PHP可以嵌入HTML语言,所以学习起来并不困难。6、简单的语言:PHP坚持脚本语言为主,与Java和C+不同。7、效率高:PHP消耗相当少的系统资源。8、图像处理:用PHP动态创建图像9、面向对像:在PHP4,PHP5 中,面向对象方面都有了很大的改进,现在PHP完全可以用来开发大型商业程序。10、PHP 相对于其他语言,编辑简单,实用性强,更适合初学者。二、问题分析(一)功能设计我们的博客系统是PHP网络编程和数据库的结合应用,主要功能定位于通过互联网在浏览器与服务器之间进行信息的传输。整个系统的结构力求清晰明了,方便用户使用是我们的宗旨。博客系统的整体布局上简洁实用,美观大方。各种界面元素的使用使得用户在通过浏览器进行会话时有良好的客户体验。容易上手,使用方便,即使很少使用计算机上网的用户也可以独立适用。用户可以通过登陆在自己的博客上发布日志,回复留言等。博客系统提供给用户一个方便表达自我和互动的平台。由于我刚接触到基于PHP语言的网络编程,所以做出的系统有些粗糙,功能和网上商业的相比较单一,还有待完善。(二)设计问题本课题研究的目标是:建立一个基于互联网的符合当代社会理念、具有现代交流特色、综合效益很高的B/S模式。要解决的主要问题有以下几点:1.理论问题: 如今网络上博客系统随处可见,界面美观,功能强大。如何设计出具有自己的风格,又要体现出实用性,不流于形式的博客系统,是需要慎重考虑的。2.技术问题:运用到的PHP网络编程、数据库技术、服务器技术、安全性、使用到的工具等等,都是我们要慎重考虑的问题,也是建立一个好的通用性强的网络系统的必备要求。3.实践问题:网络是一个新环境,如何在这个平台上,创造出符合自己实际的系统模式,需要从实践中不断总结,不切实际地模仿别人,拷贝别人,是不可取的。(三)设计原则本课题的主要开发原则遵循以下几点:1、界面风格简洁自然,切忌浮躁夸张的风格,为客户带来一个轻松的体验使用环境;2、博客系统的部分主要功能要基本完整,包括用户登录,登录验证,用户注册,服务器管理功能,用户发表日志、回复留言、等等;3、采用是世界使用排名第一的Web服务器软件Apache。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一,这样有效的保证了系统运行的稳定;4、使用MySQL数据库存放数据时,尽量做到设计明确,表结构清晰,便于以后的扩展和维护。(四)开发工具的选择Zend Studio是屡获大奖的专业 PHP 集成开发环境,具备功能强大的专业编辑工具和调试工具,支持PHP语法加亮显示,支持语法自动填充功能,支持书签功能,支持语法自动缩排和代码复制功能,内置一个强大的PHP代码调试工具,支持本地和远程两种调试模式,支持多种高级调试功能。在这里我们使用网络上流行的AMP黄金组合:1PHP解释环境我们需要一个安装有PHP解释器的操作系统环境下进行开发测试,本论文中的系统采用了windows环境下的开发。2MySQL数据库环境为了实现客户/服务器的良好交互,系统必须依赖数据库技术,保存客户的相关信息3Apche服务器环境 作为一个web上使用的博客系统,必须要有服务器端的支持,才能在互联网上使用,是博客系统具有交互性。(五)数据库设计由于本网站需处理大量的数据,因而选择好的数据库管理系统并设计好数据库便显得异常重要了。有了好的数据库,可便于进行查询,插入删除等数据操作,提高系统的效率,也便于管理。我们选择了MySql 作为数据库管理系统,数据库设计如下:1E-R图2.数据字典 (1)用户信息表字段类型Null默认user_idint(10)是NULLusernamevarchar(64)是passwordvarchar(64)是mailadresvarchar(100)是user_picvarchar(255)是NULLuser_provincevarchar(16)是NULLsignupdatevarchar(20)是user_gendervarchar(8)是NULLuser_webvarchar(255)是NULLuser_infovarchar(255)是isadminint(1)是0iscloseint(1)是0last_loginint(10)是0domainvarchar(20)是NULLblog_numint(5)是0friend_numint(5)是0pic_numint(5)是0fav_numint(5)是0share_blogint(1)是1total_clickint(10)是0clickdayint(10)是0ipvarchar(20)是0state_readvarchar(200)是state_listenvarchar(200)是state_enjoyvarchar(200)是backimgvarchar(255)是NULLnotetext是NULLfanfouvarchar(64)是NULLauth_emailvarchar(50)是0tonsenzvarchar(64)是NULL(2)评论表字段类型Null默认reply_idint(10)是NULLshare_idint(10)是share_uidint(10)是reply_bodyText是reply_timeint(10)是reply_uidint(10)是reply_unamevarchar(64)是reply_upicvarchar(255)是typevarchar(8)是网页(3)文章表字段类型Null默认share_idint(10)是NULLuser_idint(10)是user_namevarchar(64)是user_picvarchar(255)是content_bodyText是share_timevarchar(20)是typevarchar(10)是reply_timesint(10)是0is_shareint(1)是1(4)类别表字段类型Null默认class_idint(10)是Class_namechar (10)是NULL三、设计与实现(一)总体结构设计网站的总体结构如下图:首页个人页面(blog)日志留言管理(二)具体设计 1.博客系统的实现方案(1)搭建开发环境,建立服务器和数据库(2)用户登录系统注册信息(3)用户进行发表日志等相关操作(4)服务器保存用户数据(5)用户安全退出 2.博客系统的设计与主要编码(1) 网站安装的流程 首先在服务器端安装我们开发好的博客系统,将文件放入指定位置后(一般是服务器的www文件夹中)运行其中的install.php,如图:主要代码如下(省去部门页面的编码):$username=$_POSTadmin;/获得参数$password=md5($_POSTpass);$nickname=$_POSTnickname;$email=$_POSTemail;require 19-1.php;$link=mysql_connect($host,$user,$pass) or die(mysql_error();mysql_select_db($db_name,$link);/选择数据库$sql=create table $table_log(id int(5) not null auto_increment primary key,p_id int(5) not null default 0,title varchar(40) not null default ,content text not null,sort varchar(20) not null default ,views int(5) not null default 0,tbcount int(5) not null default 0,author varchar(40) not null default ,date varchar(20) not null default ,top enum(n,y) not null default n,hide enum(n,y) not null default n,allow_tb enum(n,y) not null default n);mysql_query($sql,$link) or die(mysql_error();/发送创建B_LOG表的SQL请求$sql=create table $table_user(id int(5) not null auto_increment primary key,username varchar(40) not null default ,password varchar(40) not null default ,admin enum(1,0) not null default 0,nickname varchar(20) not null default ,sex enum(boy,girl) not null default boy,photo varchar(80) not null default ,email varchar(60) not null default ,description varchar(200) not null default );mysql_query($sql,$link) or die(mysql_error();/发送创建B_USER表的SQL请求$sql=create table $table_gbook(id int(5) not null auto_increment primary key,title varchar(40) not null default ,content text not null,author varchar(40) not null default ,date varchar(30) not null default );mysql_query($sql,$link) or die(mysql_error();/发送创建B_GBOOK表的SQL请求$sql=create table $table_sort(id int(5) not null auto_increment primary key,sortname varchar(20) not null default ,sortimg varchar(60) not null default ,sortnum int(5) not null default 0,description varchar(200) not null default );mysql_query($sql,$link) or die(mysql_error();/发送创建B_SORT表的SQL请求$sql=insert into $table_sort(sortname,sortimg,description)values(默认类别,imagessort.img,默认的分类,请更改!);mysql_query($sql,$link) or die(mysql_error();/发送添加默认分类的SQL请求$sql=insert into $table_user(username,password,admin,nickname,email,description)values($username,$password,1,$nickname,$email,我就是本小站的管理员!);mysql_query($sql,$link) or die(mysql_error();/发送添加管理员信息的SQL请求?然后就可以在首页中的管理项,进行登录操作,如图:(2) 网站使用的流程普通客户通过浏览器进入博客管理系统界面,首先进行注册操作,如图:主要代码如下:$username=$_POSTadmin;/获得参数$password=md5($_POSTpass);$nickname=$_POSTnickname;$email=$_POSTemail;$description=$_POSTdescription;require 19-1.php;$link=mysql_connect($host,$user,$pass) or die(mysql_error();mysql_select_db($db_name,$link);/选择数据库$sql=select username from $table_user where username=$username;$result=mysql_query($sql,$link);$nums=mysql_num_rows($result);/获取重名用户if($nums!=0) echo 用户名已经存在!点这里返回;else/如果不存在重名用户$sql=insert into $table_user(username,password,nickname,email,description)values($username,$password,$nickname,$email,$description);mysql_query($sql,$link) or die(mysql_error();/发送添加用户信息的SQL请求之后就可以登录了,并进行相关操作:登录后在左侧标题栏变可以进行操作了,如图:点击日志便可以发表自己的日志了主要代码如下:$title=$_POSTtitle;/获取表单变量$content=$_POSTcontent;$hide=$_POSThide;$sort=$_POSTsort;$date=date(Y年n月d日);/获取当前日期require 19-1.php;$link=mysql_connect($host,$user,$pass);mysql_select_db($db_name,$link);$sql=insert into $table_log(title,content,sort,author,hide,date)values($title,$content,$sort,$_COOKIEusername,$hide,$date);mysql_query($sql,$link);/发送插入新日志记录的SQL请求$sql2=update $table_sort set sortnum=sortnum+1 where sortname=$sort;mysql_query($sql2,$link);/发送更改类别数量的SQL请求点击留言可以给相关日志进行留言,如图:主要代码如下:?PHPif($_COOKIEusername)/如果用户已经登录require 19-1.php;/调用配置文件$link=mysql_connect($host,$user,$pass);mysql_select_db($db_name,$link);$sql=select * from $table_user where username=$_COOKIEusername;$result=mysql_query($sql,$link);$row=mysql_fetch_array($result);/用户信息置入数组if ($rowadmin=1)/用户为管理员if(!$_POSTaction)/未发送表单变量时显示HTMLecho n;echo 留言管理;echo n;echo n;$sql=select * from $table_gbook;$result=mysql_query($sql,$link);echo n;echo 作者标题内容操作类型n;echo n;while($rows=mysql_fetch_array($result)echo ;echo ;echo .$rowsauthor.$rowscontent.;echo 删除修改;echo ;$i+;/循环显示留言内容echo ;echo ;echo ;echo ;echo n;echo n;echo n;echo n;echo n;else/如果已经发送表单变量require 19-1.php;$link=mysql_connect($host,$user,$pass);mysql_select_db($db_name,$link);for($i=0;$icount($_POSTid);$i+)$temp1=$_POSTid$i;/循环获取表单变量$temp2=$_POSTtitle$i;$temp3=$_POSTcontent$i;if($_POSTaction$i=del)/如果操作类型为删除$sql=delete from $table_gbook where id=$temp1;else/如果操作类型为修改$sql=update $table_gbook set title=$temp2,content=$temp3 where id=$temp1;mysql_query($sql);/执行操作SQL语句echo n;echo n;echo 博客程序n;echo ;echo n;echo n;echo 处理成功,正在返回;echo ;echo ;else/如果用户不是管理员echo 普通用户没有该权限!;else/如果用户没有登录echo 你还没有登录,点这里进行登录!;?(三)测试测试步骤:1、启动服务器端2、通过浏览器登录网站注册并进行相关操作四、结束语 毕业设计(论文)是大学生活的重要组成部分,是对一个学生大学四年学习成果的重要检验。这次的PHP博客系统是我第一次完整地按照软件工程的要求,从需求分析、系统设计、详细设计到编码和软件测试所开发的系统。在黄杰老师的指导下和同学们的帮助下,我通过自己的努力,成功地开发了该系统。这次实践也是大学期间一个难得的实践锻炼机会,相信这次锻炼将会为我以后的工作和学习起到指导性的作用。 通过这个课题的开发,我深刻体会到了四年来所学课程的重要性,在实践中运用了所学的知识;我感受到了软件开发的具体过程,特别是软件工程的指导作用;模块化程序设计可以提高软件开发的效率和减少维护的负担。参考文献:1 邹天思,孙鹏PHP从入门到精通M 北京:清华大学出版社,2008.2 陈营辉PH

温馨提示

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

评论

0/150

提交评论