新编基于PHP的新闻管理系统的设计与实现项目研究报告.docx
《新编基于PHP的新闻管理系统的设计与实现项目研究报告.docx》由会员分享,可在线阅读,更多相关《新编基于PHP的新闻管理系统的设计与实现项目研究报告.docx(46页珍藏版)》请在冰豆网上搜索。
新编基于PHP的新闻管理系统的设计与实现项目研究报告
基于PHP的新闻管理系统的设计与实现项目研究报告
摘要:
伴随着网络的出现,网页逐渐融入人们的生活。
快速及时的新闻浏览,五彩缤纷的网上信息,使网络与人们生活息息相关。
足不出户便可知天下大事,网上新闻发布系统可使系统管理员方便、快速、简洁的发布新闻,普通用户能够浏览新闻,将需要经常变动或添加的内容进行分类管理,最后系统化、标准化的发布到网站上的一种新闻网站管理。
本系统采用PHP作为开发语言,WAMP作为开发环境,EclipsePHP作为开发工具,Mysql5.0作为数据服务器,实现了对网站基本参数设置、新闻类别设置,动态新闻发布及管理等一系列功能,完成了一个动态新闻发布系统的所有功能,包括新闻新闻搜索、表情评论、文字留言、管理员登陆等与用户交互界面。
系统捕获了绝大多数的异常情况,具有较好的安全性,容错性。
前台页面结合HTML语言生成静态页面,杜绝了一般用户直接操作数据库的可能,满足了基本的新闻发布系统需求。
1绪论
1.1国内外网上新闻发布系统的发展现状
在Internet飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用.因此网站建设在Internet应用上的地位显而易见,它已成为政府、企事业单位信息化建设中的重要组成部分,从而倍受人们的重视。
现今的社会,人们已经离不开网络,网络已经成为人与人之间交流的一种形式,它能够把复杂的事情简单化。
新闻发布系统的出现使电视不再是唯一的新闻媒体,网络也充当了一个重要的新闻媒介的功能。
简单地说,新闻发布系统就是一个网络新闻媒介,实现了对新闻的分类、上传、审核、发布,模拟了一般新闻媒介的新闻发布的过程,通过不同权限的用户名和密码分别实现以上所说功能,当然这些功能也可以是某一个用户全部具有的[1]。
随着互联网的进一步发展,网络媒体在人们心中的地位进一步提高,新闻发布系统做为网络媒体的核心系统,其重要性是越来越明显:
一方面,它提供一个新闻管理和发布的功能;另一方面,现在的新闻发布要求实现与普通用户之间的交互,用户可以很方便地参加一些调查和相关新闻的评论,这一点也是其他一些媒体现在无法做到的(电视、电台等),同时,Internet发展到当今,可以说,只要你上Internet,你就会接触到新闻发布系统,新闻发布系统的用户是相当惊人的,其重要性是不容置疑的,当然这也对新闻发布系统的开发提出了更高的要求。
网站新闻发布系统,是将网站上需要经常变动的信息,社会的动态等更新信息集中管理,并通过信息的某些共性进行分类,最后系统化、标准化发布到网站上的一种网站应用程序。
传统的网站新闻管理方式有两种,一是静态HTML页面,更新信息时需要重新制作页面然后上传页面并修改相应链接,这种方式因为效率太低已不多用。
二是基于JSP或者其他语言和脚本语言,将动态网页和数据库结合,通过应用程序来处理新闻,这是目前较为流行的做法。
人们对最新信息的需求和发布迫切的需要及时性,而动态交互式网页刚好提供了这些功能,本系统就是一个能够在网上实现新闻发布,多栏目管理,实时的进行行为统计和记录的网上交互系统[2]。
1.2系统开发背景
新闻发布系统,在国内外早已有着成熟的研究成果和广泛的社会应用.国内众多大型门户网站,如网易,新浪,搜狐,首都在线,人民日报网,中国新闻网等,每天甚至时刻进行海量信息的维护,以保持网站内容及时更新,内容管理系统,起着绝对重要的作用,是当今动态网站内容更新的主要手段,国外更是如此。
信息技术的发展使得整个世界越来越小,这也意味着企业的竞争环境由区域化向全球化发展,尤其是随着中国加入WTO后,经济全球化是大趋势,企业所处的宏观环境实际上已经不仅仅是通过信息技术员连接起来狭义的网络,而应该将技术环境与经济环境结合在一起考虑,形成一种大网络的概念。
企业对信息的掌握程度、信息获取是否及时、信息能否得到充分利用、对信息的反应是否敏感准确,已越来越成为衡量一个企业市场竞争能力的重要因素,所以建立动态的新闻发布是系统适应企业发展要求的,其意义是巨大的。
新闻系统是一个比较典型的文档系统,掌握了新闻系统的开发,对于开发其它的文档系统都有很大的帮助。
随着信息时代的高速发展,传统的报纸杂志已经远远满足不了人们的需求,人们更加希望于能够在网上了解更多的新闻和信息,于是我们就很有必要在网上创建一个新闻发布管理信息系统了。
大部分网站都是采用静态的方式来发布和管理信息的,可是网站需要更新的信息量也越来越大,所以这很不利于网站管理人员的工作。
为了更加方便的管理网站,于是我们就很迫切的需要利用动态技术创建一个新闻发布管理信息系统了[3]。
本系统的开发基于简单大方、分类明晰的特点,将国际、国内、社会、经济、娱乐、体育、房产、健康、军事、IT等10类新闻展现给用户,用户在阅读完后可进行表情评论,文字留言;此外,本系统也包括了视频的发布,可供用户在线观看。
1.3主要内容
本设计共分为四章,主要包括:
第1章绪论:
介绍本课题的背景和意义,国内外企业信息门户网站的现状及本文的主要内容以及论文结构。
第2章相关理论与技术:
本章主要介绍了PHP技术,PHP开发平台、和数据库访问方法,HTML基础知识及流媒体技术的介绍。
第3章系统分析与设计:
本章首先分析了本设计题目的系统目标。
然后,进一步抽象出了系统的功能需求。
最后,给出了数据库管理、开发本系统所选择的开发工具和系统总体设计结构框图。
第4章系统实现:
本章介绍了新闻发布系统的主体,包括前台新闻界面实现和后台管理界面的实现,均包括了功能介绍、界面实现以及关键代码介绍。
2关键技术介绍
2.1HTML简介
HTML是HypertextMarkupLanguage(超文本标记语言)的缩写,它是构成Web页面(Page)的主要工具,是用来表示网上信息的符号标记语言。
在网上,如果要向全球范围内出版和发布信息,需要有一种能够被广泛理解的语言,即所有的计算机都能够理解的一种用于出版的“母语”。
WWW(WorldWideWeb)所使用的出版语言就是HTML语言。
通过HTML,将所需要表达的信息按某种规则写成HTML文件,通过专用的浏览器来识别,并将这些HTML“翻译”成可以识别的信息,就是我们现在所见到的网页。
HTML的功能主要有:
(1)出版在线的文档,其中包含标题、文本、表格、列表以及照片等内容。
(2)通过超链接检索在线的信息。
(3)为获取远程服务而设计表单,可用于检索信息、定购产品等。
(4)在文档中直接包含电子表格、视频剪辑、声音剪辑以及其他一些应用。
HTML实际是组合成一个文本文件的一系列标签。
HTML标签通常是英文词汇或缩略语(如P代表Paragragh),但它们与一般文本有区别,因为它们放在小三角括号里,并且是成对出现的。
每当使用一个标签--如
,则必须以另一个标签
将它关闭。
一个HTML文件大体分为以下几部分:
网页标题网页的内容
其中:
...:
表示这是一个HTML文件
...:
表示这是网页的头部分
...:
网页的标题
...:
网页的正文部分
2.2PHP技术
2.2.1PHP简介
PHP(HypertextProcessor)是目前最常见的用来生成动态网页的工具之一,也是一种易于学习和使用的Web服务器端脚本描述语言。
它是一种HTML(HypertextMarkupLanguage,超文本链接标示语言)内嵌式的语言(类似于IIS上的ASP),而且PHP的语法融合了UnixShell、C、C++、Java、Perl以及PHP自己的特性,同传统的CGI或者Perl相比,PHP的语法规则更简单,开发效率更高。
此外,PHP4.0的源代码是完全公开的。
任何热心于PHP的程序员都可以为PHP添加新的函数库,这使得PHP更有活力。
目前,可用于编写Web服务器端脚本的语言不下几十种,但比较常用的却只有PHP、ASP、Perl、JSP等有限的几种,同其他脚本描述语言相比,PHP有其自身的优势:
(1)没有运行费用;
(2)基于服务器端;
(3)强大的数据库支持;
(4)PHP最强大、最突出的特性在于它能支持大量的数据库,使得编写基于数据库的网页变得越来越简单;
(5)跨平台;PHP是一种跨平台的服务器端脚本描述语言。
PHP可以安装在Unix、Linux或者Windows平台上,然后配合相应的Web服务器来提供相应的服务,因此用PHP写出来的程序可以非常轻易地移植到不同的操作系统平台上。
嵌入到HTML。
PHP可以直接嵌入到HTML内部,而不需要通过编译,因此PHP是解释型的语言(Interpret),使用起来很方便。
(6)简单高效。
和Java、Perl、C++等程序设计语言不同,PHP坚持以基本语言为基础,但同时它的功能又能够强大到足以支持任何类型的Web站点。
(7)支持多种网络协议,良好的可扩充性;它在这方面支持了相当多的通讯协议,这主要包括:
1 与电子邮件相关的:
IMAPPOP3;
2 网管系统:
SNMP;
3 网络新闻:
NNTP;
4 账号共用:
NIS;
5 全球信息网:
HTTP及Apache;
6 目录协议LDAP以及其他网络的相关函数。
除此之外,用PHP写出来的Web后端CGI程序,可以很容易地移植到不同的操作系统上。
2.2.2PHP开发平台
目前大多数支持PHP的网站都采用Linux作为操作系统,Apache作为Web服务器,Mysql作为数据库(LAMP)的方案。
Linux和Apache都是功能强大的免费软件,对硬件要求不高,是中小型网站的理想平台。
所需软件:
(1)PHP源程序C语言代码。
(2)MySQL源程序
(3)Apache源程序
(4)Linux系统
以上这些软件因为都免费软件,所以在安装了Linux之后,这些软件都是随操作系统装上(需要在安装时选中相应的软件包),而且环境基本上都配好,只要启动相应的服务就可以了。
启动Apache服务:
servicehttpdstart启动MySQL数据库:
mysqld_safe--user=mysql一切配好之后,我们就可以利用Mozilla来访问我们的PHP程序了。
2.2.3PHP文件组成
PHP文件以结尾,一个*.php文件是一个文本文件,它可以用Dreamweaver来进行设计。
一般来说,PHP文件由HTML标记和JQuery或者JavaScript程序代码混杂在一起构成的,它是一个标准的网页。
如下面例子所示:
PHP
echo"Helloworld我的第一个PHP程序!
";
?
>
2.3访问数据库的实现方法
(1)首先介绍一下web数据库架构:
如2-1图所示:
123
654
图2-1web数据库架构
从web查询数据的基本步骤:
Step1:
检查并过滤来自用户的数据;
Step2:
建立一个适当的数据库连接;
Step3:
查询数据库;
Step4:
获取查询结构;
Step5:
将结果显示给用户。
(2)此系统我采用了WAMP作为开发环境,它是一个将PHP与Mysql5.0集成起来的开发环境,所以当服务器打开后,连接数据库的方法较为简洁,可用一下语句:
连接数据库mysql_connect—打开一个到MySQL服务器的链接;
语法格式:
resourcemysql_connect(主机,用户名,密码);
选择数据库:
mysql_select_db(数据库名称[,链接标示符]);
关闭数据库:
mysql_close();
2.4MYSQL数据库
2.4.1MYSQL简介
MySQL最初的开发者的意图是用mSQL和他们自己的快速低级例程(ISAM)去连接表格。
不管怎样,在经过一些测试后,开发者得出结论:
mSQL并没有他们需要的那么快和灵活。
这导致了一个使用几乎和mSQL一样的API接口的用于他们的数据库的新的SQL接口的产生,这样,这个API被设计成允许为用于mSQL而写的第三方代码更容易移植到MySQL。
MySQL这个名字是怎么来的已经不清楚了。
基本指南和大量的库和工具带有前缀“my”已经有10年以上,而且不管怎样,MySQLAB创始人之一的MontyWidenius的女儿也叫My。
这两个到底是哪一个给出了MySQL这个名字至今依然是个迷,包括开发者在内也不知道。
MySQL的海豚标志的名字叫“sakila”,它是由MySQLAB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。
获胜的名字是由来自非洲斯威士兰的开源软件开发者AmbroseTwebaze提供。
根据Ambrose所说,Sakila来自一种叫SiSwati的斯威士兰方言,也是在Ambrose的家乡乌干达附近的坦桑尼亚的Arusha的一个小镇的名字。
2.4.2MYSQL特点特性
(1)使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性
(2)支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统
(3)为多种编程语言提供了API。
这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
(4)支持多线程,充分利用CPU资源
(5)优化的SQL查询算法,有效地提高查询速度
(6)既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名
(7)提供TCP/IP、ODBC和JDBC等多种数据库连接途径
(8)提供用于管理、检查、优化数据库操作的管理工具
(9)可以处理拥有上千万条记录的大型数据库
2.4.3MYSQL数据库应用环境
与其他的大型数据库例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQLCluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。
对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。
目前Internet上流行的网站构架方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作为操作系统,Apache作为Web服务器,MySQL作为数据库,PHP作为服务器端脚本解释器。
由于这四个软件都是免费或开放源码软件(FLOSS),因此使用这种方式不用花一分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统。
3系统分析与设计
3.1概述
本章在阐述系统需求分析和系统设计目标的基础上,对“网上新闻发布系统”的功能进行设计。
在数据库设计时通过E-R图来描述各个实体间的关系,清晰的展示了Mysql关系数据库的强大的功能,用UML建模工具描述系统涉及到的时间流,以及系统运行环境的搭建,真实的模拟了一个软件项目的功能的设计与实现、软件的总体结构设计和模块设计、编程和调试、程序联调测试以及编写、提交程序整个流程。
3.2需求分析
3.2.1需求分析概述
经过对此网站进行详细的需求分析后,制定了该系统所应达到的总体目标及功能目标。
(1)总体目标
很多网站都提供新闻栏目,例如搜狐、新浪等著名网站的新闻专栏。
许多企业和个人网站也需要定期发布一些关于企业或网站的新闻。
因为网络中新闻发布的频率非常高,如果使用静态网页作为新闻页面,则维护工作将非常繁琐,管理员每天需要制作大量的网页,从而浪费很多时间和精力。
使用新闻发布及管理系统可以使新闻发布和管理变得很轻松,管理员只需设置标题、内容和图片等新闻就可以了,系统将自动生成对应的网页。
(2)功能目标
本系统的功能目标分为以下几个模块:
新闻发布、新闻修改、新闻删除、新闻搜索、留言添加及审核、友情链接添加及审核等功能。
3.2.2系统的项目规划
新闻发布系统是一个功能完善的新闻类网站,由前台新闻浏览和后台新闻管理两个大部分组成。
(1)前台功能模块
新闻分类、新闻显示、新闻查询、访客留言、友情链接、后台登陆。
(2)后台管理模块
管理员账号密码管理、网站基本信息设置、新闻栏目添加、新闻栏目管理、新闻发布、新闻管理、友情链接管理、访客留言管理。
3.3系统设计
3.3.1系统功能设计
整个系统功能设计如图3-1所示:
图3-1系统功能图
在本系统中,系统管理模块的功能比较简单。
在系统初始化时,有一个默认的“系统管理员”用户Admin,由程序设计人员手动地添加到数据库中。
用户模块功能图如下图3-2所示:
图3-2用户模块功能图
所有用户均可浏览新闻、搜索新闻、表情评论,文字留言。
3.3.2系统的用例分析
本系统包含2种参与者:
普通访客、管理员。
普通访客可以对网站所有新闻页面进行浏览、新闻搜索、表情评论,文字评论。
管理员除了具备普通用户的功能权限外还要管理这个新闻系统的新闻发布、管理等整个系统的管理。
如图3-3所示:
图3-3新闻平台展示用例图
3.3.3系统的顺序图
顺序图(SequenceDiagram)描述了对象之间传送消息的时间顺序,它用来表示用例中的行为顺序。
(1)用户新闻浏览的顺序图
普通用户打开系统之后,可浏览各种类型的新闻并进行留言,如3-4图所示:
图3-4用户浏览新闻、添加评论的顺序图
(2)新闻后台管理顺序图
本系统的新闻发布由记者来完成,当编辑审核后新闻由站点首页显示出来。
如3-5图所示:
图3-5新闻后台管理顺序图
3.3.4系统流程分析
如3-6图所示:
`
图3-6系统流程图
3.3.5数据库设计
在本系统中,主要应用数据库设计的是新闻管理,新闻类型管理,用户信息管理,评论管理以及友情链接管理。
(1)E-R图
E-R图也即实体-联系图(EntityRelationshipDiagram),提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型[5]。
本系统E-R图如下图所示:
图3-7用户信息E-R图
用户作为实体,它具有的属性有编号、姓名、密码、Email保存了用户的详细信息,方便用户登录管理。
图3-8新闻类型信息E-R图
新闻类型作为实体,它具有的属性有编号、名称、关键字、栏目描述,方便与前台结合生成相应的新闻类型。
图3-9新闻信息E-R图
新闻表作为实体,它具有的属性有编号、类型、标题、发布时间、发布者、新闻简介、新闻内容、新闻来源,方便于新闻发布、新闻更新、新闻修改等。
图3-10新闻评论信息E-R图
评论表作为实体,它具有的属性有编号、新闻编号、标题、评论时间、评论人、评论内容、评论表情、审核状态,方便用户阅读新闻的所有评论,发表自己的评论。
(2)表结构
本系统主要涉及的表主要包含有:
新闻表、新闻类型表、用户表、留言表和表情评论表。
①新闻表(p_newsarticle)
新闻表包含如下字段:
新闻ID(id)、新闻类型(cid)、标题(title)、发布时间(datetime)、发布者(author)、来源(origin)、关键字(keywords)、内容(content)。
如表3-1所示
表3-1p_newsarticle新闻表
Field
Type
null
key
Default
Extra
id
int(5)
notnull
pri
null
auto_increment
cid
varchar(20)
notnull
null
title
varchar(255)
notnull
null
datetime
date
notnull
null
author
varchar(20)
notnull
null
origin
varchar(20)
notnull
null
keywords
varchar(100)
notnull
null
content
text
notnull
null
②新闻栏目表(p_newsclass)
新闻类型表包含如下字段:
编号(id)、名称(name)、关键字(keywords)、栏目描述(discription)。
如表3-2所示:
表3-2p_newsclass新闻栏目表
Field
Type
null
key
Default
Extra
id
int(5)
notnull
pri
null
auto_increment
name
varchar(25)
notnull
null
keywords
varchar(100)
notnull
null
discription
varchar(100)
notnull
null
③用户表(p_admin)
用户表包含如下字段:
编号(id)、用户名(username)、姓名(name)密码(password)、Email(Email)。
如表3-3所示:
表3-3user用户表
Field
Type
null
key
Default
Extra
id
int(5)
notnull
pri
null
auto_increment
username
varchar(20)
notnull
null
name
varchar(20)
notnull
null
password
varchar(32)
notnull
null
Email
varchar(50)
notnull
null
④留言表(p_newsreview)
留言表包含如下字段:
编号(id)、新闻编号(aid)、标题(title)、时间(datetime)、发布者(author)、内容(content)、表情(faceName)、审核状态(reviewStatus)。
如表3-4所示:
表3-4p_newsreview留言表
Field
Type
null
key
Default
Extra
id
int(5)
notnull
pri
null
auto_increment
aid
int
notnull
null
title
varchar(50)
notnull
null
datetime
date
notnull
null
author
varchar(50)
notnull
null
faceName
varchar(50)
notnull
null
reviewS