php个人博客设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章绪论 (2)
1.1博客概述 (2)
1.1.1博客的来源和历史 (2)
1.1.2博客的特点与优势 (3)
1.2相关技术介绍 (4)
1.2.1动态网页技术 (4)
1.2.2 PHP技术 (4)
1.2.3数据库技术 (5)
1.2.4APACHE技术 (6)
1.2.5VBScript和JavaScript语言................................... 错误!未定义书签。
第2章系统需求分析 (6)
2.1项目背景 (6)
2.2.1需求调研 (7)
2.2.2系统功能需求 (7)
本系统具有如下功能: (7)
2.2.3系统需求管理规划表 (7)
2.3系统的目标和研究方法 (8)
2.3.1系统目标 (8)
2.3.2可行性研究方法 (8)
2.4硬件的可行性 (8)
2.5结论 (9)
3.1系统运行环境 (10)
3.2系统用例关系 (10)
3.4系统各模块功能介绍 (12)
第4章系统数据库设计 (14)
4.1数据表的设计 (14)
4.1.1用户表 (14)
4.1.2文章内容表 (14)
4.1.3文章评论表 (14)
4.1.4像册图片表.................................................. 错误!未定义书签。
4.1.5图片评论表.................................................. 错误!未定义书签。
4.1.6文章分类表 (15)
4.1.7其它数据库表................................................ 错误!未定义书签。
4.2 E-R关系图 (15)
5.1系统主要模块开发 (17)
5.1.2用户模块 (17)
5.1.3文章功能模块 (19)
5.1.4文章评论模块 (20)
5.1.5 管理员模块 (21)
5.1.6公共模块.................................................... 错误!未定义书签。
5.1.7数据库链接模块 (22)
第6章系统配置和发布 (22)
6.1开发和应用环境配置 (22)
6.1.1 WAMP架构安装 (22)
6.1.2 APACHE服务器配置........................................... 错误!未定义书签。
6.1.3 UltraEdit开发工具配置 (22)
6.1.4Mysql数据库配置............................................. 错误!未定义书签。
6.2系统的发布和运行效果 (22)
6.2.1系统的发布 (22)
6.2.2系统运行效果 (22)
结论 (24)
致谢 (25)
参考文献 (26)
附录A 外文翻译-原文部分 ............................................. 错误!未定义书签。
PHP L ANGUAGE B ASICS................................................... 错误!未定义书签。
附录B外文翻译-译文部分............................................ 错误!未定义书签。
PHP基础语言........................................................ 错误!未定义书签。
附录C部分主要源程序 ............................................ 错误!未定义书签。
第1章绪论
个人博客是当今网络的热点,个人博客技术的出现使得每个人可以零成本、零维护地创建自己的网络媒体,Blog站点所形成的网状结构促成了不同于以往社区的Blog文化,Blog技术缔造了“博客”文化。
1.1博客概述
什么是博客(blog)?Blog(同义词有web log,weblog)的最普通的定义是:一种表达个人思想,内容按照时间顺序排列,并且不断更新的出版方式。
Blog可以翻译成博客日志,但大多数人将它简化成博客。
随着网络出版、发表和张贴文章等网络活动的急速增长,博客已经成为了一个指称这种网络出版和发表文章的专有名词。
博客通常是由简短且经常更新的张贴构成,这些张贴的文章都按照年份和日期排列。
博客的内容和目的有很大的不同,从对其他网站的超级链接和评论,到有关公司的新闻或构想,或者是个人的日记、照片、诗歌、散文,甚至科幻小说的发表或张贴。
许多博客是个人将自己的想法表达出来,或者是一群人根据某个特定主题或共同目标进行合作,每个人都可以随时把自己的思想火花和灵感更新到博客站点之上。
1.1.1博客的来源和历史
作为博客这个网络时代的新兴事务,它到底是什么时候出现的或者在什么时候由什么
发展而来的?
一般认为,博客起源于网上浏览者在网上发现了有趣的内容,互相用电子邮件等方式交流通报。
这些信息经过有心人有意识的整合,就发展成了博客的雏形。
纽约时报的大卫·格拉格这样描述博客的诞生:一些程序员尝试在网上推出超链接形式的日记,张贴他们自己的技术层面的思考心得与个人生活方面的休闲内容。
当这种行为引起人们广泛关注后,他们为那些喜欢这种张贴方式但对技术一窍不通的人开发了博客网站的简便维护工具,由此,博客在非技术人员中也开始流行起来。
随着博客人数的日益增多,他们的目的与初衷已相去甚远。
目前的博客们(Blogger)发表和张贴的目的有很大的差异。
由于博客的沟通方式灵活方便,它已成为家庭、公司、部门和团队之间越来越盛行的沟通工具Blog的源头在美国,这大概也是Blog如今在美国火爆的原因之一。
1997年,当时还担任美国UserLand软件公司CEO的Dave Winer发布了一个最早与Blog技术相关的脚本,即“Scripting News”。
这个程序推出之后很受欢迎,随后,UserLand又推出基于UserLand Frontier的工具“UserLand Radio”,这也是如今最受欢迎的Blog工具开发之一。
不过在“Scripting News”诞生的前一年,就已经有了Blog的最初设想。
当时为了抵制美国《通信规范法》、提倡言论自由,Winer在Web内容编辑/管理的脚本工具“UserLand Frontier”中嵌入了Blog功能。
当初Winer并没有使用Blog这个词,英文Blog是Weblog 的简称,是网络上的一种流水记录形式,美国网民习惯把写作Blog这个动作叫做Blogging,而把做这件事的人称为“Blogger”。
到了中国,Blogger被演绎成为“博客”。
1.1.2博客的特点与优势
Blog是继Email、BBS、IM之后出现的第四种全新的网络交流方式。
邮件、即时通讯和bbs的之间的区别就如同与一个人就某个问题交谈与和许多人交谈,与熟悉的交谈和与不熟悉的人交谈的之间的区别一样;而博客的与它们的区别就在于你可以停下来认真地整理一下自己的思路和想法,并把它用“书面”的语言表达出来。
简言之,博客就是以网络作为载体,简单迅速便捷地发布自己的心得,及时有效轻松地与他人进行交流,再集丰富多彩的个性化展示于一体的综合性平台。
具体而言博客相比传统的交流沟通方式和工具具有什么优势呢?
(一)主观性
Blog的是一种以作者为中心的媒体,文章表达着作者的主观感受与意见。
这必然涉及着某人在某個时间点上从某个方向切入后的思绪痕迹,这强调着主题在Blog足以自由发挥其个性与独到的见解。
(二)交流性
一方面如上所述,Blog呈现的是以主体发表个人见解为中心的言谈领域,但这并没有违背主体与主体之间的交互主体对话交往模式。
在Blog中的读者群之间,彼此会去阅读彼此的Blog,可以把这种现象想像成一种环状甚至知识状的结构,每当一有人在自己的Blo g 上提出了什么有趣的东西,连带着会有一群人也在自己的Blog上开始撰写相关的主题,换言之,Blog当中的成员们彼此之间呈现的是持续交流与对话。
(三)多媒体性
博客集合现代化计算机技术的各种表现方式,比如表情、图片、音乐、动画甚至视频等来表现作者的想法,它使得交流变得非常直观简洁而且迅速广泛.
由于博客拥有以上所属的优势和特点,它的发展相当迅速.随着网络和博客快速扩张,当今网络上已经有成千万的博客用户,并且这一数字还在上升.由于沟通方式比电子邮件、讨论群组更简单和容易,拨了已成为家庭、公司、部门和团体之间越来越盛行的沟通工具,
因为它也逐渐被应用在企业内部网络.
相信随着网络和计算机技术的进步发展,博客也有更广阔的空间,必然成为日后人们交流和沟通的重要方式以及生活中不可或缺一项重要元素.
1.2相关技术介绍
一个博客系统的开发需要用到以下相关技术:
1.2.1动态网页技术
网络技术日新月异,细心的网友会发现许多网页文件扩展名不再只是“.htm”,还有“.php”、“.php”等,这些都是采用动态网页技术制作出来的。
早期的动态网页主要采用CGI技术,CGI即Common Gateway Interface(公用网关接口)。
您可以使用不同的程序编写适合的CGI程序,如Visual Basic、Delphi或C/C++等。
虽然CGI技术已经发展成熟而且功能强大,但由于编程困难、效率低下、修改复杂,所以有逐渐被新技术取代的趋势。
目前最常用的三种动态网页语言有:
●PHP全名A ctive Server Pages,是一个WEB服务器端的开发环境,利用它可以产生和运行动态的、交互的、高性能的WEB服务应用程序。
●PHP (Hypertext Preprocessor)是一种跨平台的服务器端的嵌入式脚本语言. 它大量地借用C,Java和Perl语言的语法, 并耦合PHP自己的特性,使WEB开发者能够快速地写出动态生成页面.它支持目前绝大多数数据库。
还有一点,PHP是完全免费的,不用花钱,你可以从PHP官方站点()自由下载。
而且你可以不受限制地获得源码,甚至可以从中加进你自己需要的特色。
●JSP(Java Server Pages)是Sun公司推出的新一代站点开发语言,他完全解决了目前PHP,PHP的一个通病--脚本级执行(据说PHP4也已经在Zend 的支持下,实现编译运行).Sun 公司借助自己在Java 上的不凡造诣,将Java从Java应用程序和Java Applet 之外,又有新的硕果,就是Jsp--Java Server Page。
Jsp可以在Serverlet和JavaBean的支持下,完成功能强大的站点程序。
PHP 、PHP、 JSP三者都是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。
1.2.2 PHP技术
PHP是能让你生成动态网页的工具之一。
PHP代表:超文本预处理器(PHP: Hypertext Preprocessor)。
PHP是完全免费的,不用花钱,你可以从PHP官方站点()自由下载。
PHP遵守GNU公共许可(GPL),在这一许可下诞生了许多流行的软件诸如Linux 和Emacs。
你可以不受限制的获得源码,甚至可以从中加进你自己需要的特色。
PHP在大多数Unix平台,Linux和微软Windows平台上均可以运行。
怎样在Windows环境的PC机器或Unix机器上安装PHP的资料可以在PHP官方站点上找到。
安装过程很简单。
(1)PHP是免费的;
(2)语法简单,易学易用;
(3)面向对象编程能力强;
(4)支持众多网络协议;
(5)具有强大的数据库功能和丰富的函数库;
(6)移植性强,跨多个平台;
(7)执行效率高;
(8)可扩展性极强。
PHP主要的功能是在Web环境下,由客户端浏览器传递一些信息给Web服务器,再由Web服器去启动所指定的程序码来完成特定的工作,如图2.1所示。
图2.1 PHP的工作原理
用户通过Web客户端浏览器请求某个功能页面。
Web服务器接受这个请求,根据系统的逻辑设计,将这个请求对应的PHP文件读出,并交给PHP处理程序。
PHP处理程序解释这个文件,执行相应的处理过程,如数据库的访问与操作等。
PHP从数据库中取得数据后,将按照文件的要求,形成一个标准HTML页面。
将生成的HTML页面交给Web服务器。
Web 客户端浏览器将该HTML文件解释执行并显示出来。
这样就完成了一次客户浏览器端提出的某个PHP请求。
由于脚本在服务器上,而不是在客户浏览器端运行,传到浏览器上的Web 页面是在服务器上生成的,所以服务器端脚本不易被复制,用户看不到所要浏览页上的PHP 源代码,只能看到解释后的结果,这样就可以做到对源程序保密。
1.2.3 mysql数据库技术
本系统使用的是MySQL数据库服务器。
MySQL是一个真正的多用户、多线程SQL数据库服务器。
SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。
MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。
SQL是一种标准化的语言,它使得存储、更新和存取信息更容易。
例如,你能用SQL 语言为一个网站检索产品信息及存储顾客信息,同时MySQL也足够快和灵活以允许你存储记录文件和图像。
MySQL 是基于SQL的客户/服务器模式的关系数据库管理系统,它具有功能强大、使用简单、管理方便、运行速度快、安全可靠性强、多线程、跨平台性、完全网络化、稳定性等优点,特别适用于Web站点或应用软件的数据库后端的开发工作。
另外,用户可利用许多语言编写访问MySQL数据库的程序。
作为开放源代码运动的产物之一,MySQL关系数据库管理系统越来越受到人们的青睐,应用范围也越来越广。
闻名遐迩的速度和易用性使
MySQL特别适用于Web站点或应用软件的数据库后端的开发工作。
MySQL 主要目标是快速、健壮和易用。
1.2.4 apache
根据Netcraft公司()1999年12月所做的关于WEB服务器市场的调查,Apache以54.49%的市场占有率名列各服务器的榜首,紧随其后的是APACHE (23.78%)和Netscape(7.02%)。
虽然后两种服务器都有各自公司强有力的资金支持和强大的宣传攻势,但是仍然难以抵挡Apache这一免费、源代码开放的自由软件的诱人魅力。
Apache项目最早始于1995年[7],由一些网络管理人员自发组成,其目的是开发出一个稳定、强大的WEB服务器以满足新一代网站的需要。
当时,最流行的服务器是由美国国家超级计算机应用中心(NCSA)开发的一套软件,但是后来因为主要的设计人员相继离开,使该软件的研制陷入停滞状态。
也就是在这个时候,网站管理人员加入到开发队伍中,对服务器的功能进行了扩展,并提出了一些修补错误的补丁程序,使服务器的功能更加完善,并由此得名Apache(注:patch在英文中是补丁的意思)。
能够直接查看源代码是Apache服务器最吸引人的地方之一。
只要使用者熟悉C++或Perl,就可以自己动手修改和添加服务器的功能,而且还有许多由世界各地的开发人员免费提供的功能模块可以直接使用。
目前,Apache服务器在Unix和Windows平台都可以使用。
(一)安装Apache服务器
很多人都认为安装Apache服务器是一件非常复杂的工作,其实事实并非如此。
在Unix 平台下安装Apache服务器的过程和安装其它大多数应用程序的过程完全相同。
首先下载源文件,然后对其进行编译之后就可以使用。
而Windows版本Apache服务器的安装则更加简单,像其它Windows应用程序一样也提供了安装向导。
不管在哪一种操作系统平台上安装,首先我们都需要获得Apache服务器的一份拷贝。
不同操作系统版本的大小并不一样,但是文件都不会太大,一般在1兆和3兆之间。
因此,即使通过网络下载的话,也不会占用太多的时间。
(二)下载Apache
Apache服务器的官方站点:/有Apache的免费下载服务,并且提供了多个镜像供下载者选择。
第2章系统需求分析
2.1项目背景
写日记文章一直以来都作为很多人表达自己感情,展示自己才华以及与外人沟通的重要方式,也成为很多人生活中的重要部分.过去人们都是靠纸和笔来实现,到了之后有了电脑,也最多用文本编辑软件来写,最后还得是通过人工交换自己所写的东西,无论是纸张作为载体还是电子存储设备作为载体.这样极大缩减了交流的范围和速度以及交流的频率.
随着网络的快速发展,它已经走入了大众生活,所以自然而然诞生了个人博客这样一个新兴事物,它不仅能取代前面所说的功能,还能加入图片、音乐等等,使得作者能更无拘
无束地生动地写出自己想写的,旁人也能非常便捷地阅读并加以评论,并且它还能作为展示个人个性的窗口.更重要的是网络个人博客利用网络的巨大优势,可以非常快捷广泛而没有界限地自由交流.交流速度快,范围广以及可以让网络中任何人浏览评论是博客的最大特点。
2.2系统需求分析
通过需求分析可以明确系统的各项需求和要完成的功能,根据这些需求和功能可以更好地指导下一步的系统开发和设计,避免了字设计之后对需求的变更而导致的大量返工.
2.2.1需求调研
任何一个软件项目都是从需求调查开始,博客系统也不例外。
●远景文档:通常来自于项目业主的高层,描述系统的商业需求和系统将带来的利益。
●日常工作记述:最好的需求调研就是深入到业务过程中,亲身体验客户如何和计划中
的系统如何人交互,然后记录下来。
●同领域专家、最终用户的会谈:和最终用户和领域专家的书面或口头交流记录。
●功能说明和问题陈述:系统中的一些细节是容易被忽略的,往往客户的文字描述可以
在这方面提供更多的帮助。
2.2.2系统功能需求
本系统具有如下功能:
●用户能进行帐号注册、修改个人信息和登陆系统
●合法的博客作者能进行文章的发表和修改
●合法的博客读者能进行文章的浏览和评论
●博客的管理员能进行文章的管理
●用户可对文章进行分类和用列表方式选择文章
●博客的管理员可对注册用户进行管理
2.2.3系统需求管理规划表
根据以上对系统的需求分析,我们可以得到一个更为简明扼要的系统需求管理规划表,本表罗列了系统的各项主要功能,并且对其分类,配有间断描述,最重要的是给出了各个功能需求的优先级,优先级的高低表示了功能实现的迫切程度和必要程度.优先级高的代表该功能是系统很重要的功能,需要重点实现.博客系统需求管理规划表如表3-1所示。
2.3系统的目标和研究方法
2.3.1系统目标
(1)人力和设备的节省
传统系统主要是通过人力写作,并且载体是纸张或者磁盘、光盘.而通过博客系统可以接生一定写作人力,并利用网络存储方式,节省了纸笔资源或者磁盘、光盘资源的使用. (2)界面美观
本系统相对传统系统而言,利用了多媒体的各种视觉效果,可以方便假如图片和音乐背景以及表情,有明显的界面美观和直观的优势.
(3)编辑修改的提升
本系统可以使对文章或者一些图片背景等的编辑修改变得非常容易,非常便捷.只用修改局部,不用返工,并且不会留下视觉瑕疵.
(4)交流广泛性和速度的提升
通过网络这种媒介,使得文章、日志的交流变得非常广泛,不会收到地域和世界的限制,世界各地都可以享受交流的服务.并且交流的速度更快.
2.3.2可行性研究方法
(1)调研传统系统效率和特点
通过调研和对比传统系统的工作方式和突然点,发现效率和实用性的差距.通过理论和现实技术发的特点要求,估算和提出效率、功能的提升.
(2)参考目前已有的网站和案例
现在博客在网络上比比皆是,可以参考和学习已有的一些优秀个人博客的特点和成功之处,来找到新的开发入口.
2.4硬件的可行性
系统所采用的技术和平台都是比较成熟的,目前的硬件配置一般都足以满足系统的运行要求.
系统的基本硬件要求:网络中的服务器(服务器要求能提供空间和支持动态网络技术以Mysql数据库)、客户端电脑(具有基本多媒体功能和设备)、支持WAMP架构的工作和系统
平台(Windows2000/XP/2003)、支持WAMP架构的能处理动态网页技术的浏览器(IE6.0以上等具备解释PHP的浏览器)。
2.5结论
综上,作为毕业设计的一个项目,简要分析了系统的各种可行性讨论,并在各项可行性上完全满足开发要求,可以开始开发实现.
第3章 总体设计
3.1系统运行环境
(1)用户界面
用户需要浏览器来使用该系统,界面简洁、美观、友好,具备人性化特性,各种操作有提示信息和错误信息。
(2)软件环境
服务器端:Window NT/Unix/Linux 服务器,APACHE 服务程序,Mysql 数据库以及其相应的ODBC
客户端: Window 2000/XP/2003 Server
IE6.0以上浏览器
(3)网络带宽
服务器对外网络带宽10M 以上,客户端拥有连接互联网的设备和服务。
3.2系统用例关系
根据对系统的特点和应用的分析,可以得到本系统的用例图.如图3-1与3-2所示.
图3-1博客系统参与者用例图
图3-2博客系统用例
3.3系统模块划分结构图
该图给出了详尽的模块划分和模块组织结构,能够直观展现系统的组织结构关系.如图3-3所示.
图3-3系统模块划分结构图
3.4系统各模块功能介绍
系统的模块划分如下:
(1)首页模块
网页整体布局:对于博客的首页风格安排并且布局
菜单条:菜单条用于显示博客的一些基本功能操作选项
用户功能区:在用户功能区主要是可以用户注册和登陆,在登陆以后列出用户所拥有的可操作选项
文章显示:按时间顺序显示博客中最近的文章标题以及内容等信息
文章列表显示:按时间顺序显示博客中最近的文章标题列表
评论列表显示:按时间顺序显示博客中最近的评论和回复列表
(2)用户模块
用户注册:网络的用户通过填写ID、Password、Email、性别、地址以及验证码等信息,可以注册成为博客用户,并且获得相应的用户权限.
用户信息维护:用户可以维护自己帐号的各种信息,主要是以修改信息为主.除了ID以外的任何信息都可以得到修改.用户登陆:通过注册的用户都可以随意登陆帐号,并获得其帐号相应权限的功能和操作.
用户登陆/退出: 注册的用户都可以随意登陆帐号,并获得其帐号相应权限的功能和操作;
已经登陆的用户可以退出帐号,释放自己所占有的各种信息资源.
(3)管理员模块
文章管理:博客管理员可以对博客中的所有文章进行浏览、修改等操作
用户管理: 博客管理员对系统中所有的注册用户可进行帐户和权限管理,包括修改用户所有的权限,以及删除用户.
(4)文章功能模块
文章功能模块包括对文章的发表和修改,系统将自动更新服务器端的数据库.
(5)浏览与评论模块
文章浏览:从服务器端获得并显示用户所要浏览的文章内容
文章评论:用户浏览阅读了文章以后,可以添加或者修改评论.
(6)数据库链接模块
包括数据库链接代码的模块,提供对后台数据库的链接以及链接相关时间的响应,所有需要链接数据库的模块,都可以通过调用数据库链接模块来实现对数据库的链接操作.
第4章系统数据库设计
4.1数据表的设计
博客系统所要存储的数据项和数据量相对比较复杂和庞大,首先确定这些数据库表的世界一般是一个表存储一个实体或者对象的相关信息;对于不同的对象和实体,根据具体系统需要来扩展,可以适当细分.另外扩充信息和动态变化的信息分开放置在不同的表里.个人博客数据库中数据表,分别是:
图4-1创建数据表图
这些表基本上都是一表负责一个实体或者对象的各种信息存储,它们协调工作,以实现个人博客系统对数据库储存的要求.
4.1.1用户表
系统是主要满足网络用户的使用博客需要,由于网络的自身特点,以及网络上联系工具众多,所以用户的信息的设置相对较多, 这里主要的是用户ID编号,这个是用来唯一确定用户的标识,是用户表的主键.用户权限主要用来设置和存储用户的基本权限,不同权限能得到不同的应用功能.还有用户名用户密码都是比较重要.用户结构如表4-1所示.
表4-1用户表
4.1.2文章内容表
本表主要用来存放文章的各种信息,这也是博客系统中非常重要的一个表.其中文章ID编号为主键,唯一标识一篇文章.另外"是否显示"是设置文章是否可以被阅读,"天气情况"是指下文章时候的天气.其它信息详见表4-2所示.
表4-2文章内容表
4.1.3文章评论表
文章评论表只要存储对一篇文章的评论的各种信息,文章的评论信息相对于文章的信息要简单一些,主要包括唯一标识评论的ID编号,是主键,另外还有一项外键是存储评论的文章ID编号.表的结构如表4-3所示.
表4-3文章评论表
4.1.4文章分类表
设计本表主要用来存储博客系统中对文章的分类.其中文类ID是唯一标识文类的主键,表的详细结构如表5-6所示.
表4-6文章分类表
4.2 E-R关系图
数据库最主要的表是用户表、文章内容表、文章评论表、像册图片表、图片评论表、文章分类表.这几个表都是使用一个自动编号的ID作为主键,它们之间的关系主要是评论和文章/图片的关系,所属类别/像册和类别/像册编号的关系,这些都是外键约束关系。
本系统数据库的主要表的ER图如下图所示。
(1)总体简化E-R关系图
图4-2总体简化E-R关系图
(2)用户信息管理E-R关系。