基于PHP的新闻发布系统.docx
《基于PHP的新闻发布系统.docx》由会员分享,可在线阅读,更多相关《基于PHP的新闻发布系统.docx(14页珍藏版)》请在冰豆网上搜索。
基于PHP的新闻发布系统
摘要
21世纪是信息的时代,是网络的时代,进入信息社会高速发展的时代,数字化革命给所有领域带来新的改变。
随着Internet的普及,无论人们相隔多么遥远,都有天涯若比邻的感觉。
足不出户,便可知天下新近之大事,便可与大洋彼岸的朋友畅谈无阻。
网页逐渐融入人们的生活,快速及时地浏览新闻,获取五彩缤纷的网上信息,已成为人们日常生活的一部分,与此同时越来越多的企业建立了自己的WWW网站,企业通过网站可以展示产品,发布最新动态,与用户进行交流和沟通,与合作伙伴建立联系,以及开展电子商务等。
互联网的世界里蕴藏无限生机,这里只有想不到的、没有做不到的。
网络发展前景无限,及早与网络结合,与信息时代同步,与高科技汇合,定会给社会各行各业的发展注入新鲜的活力。
在网络技术的领域里,传统的商务网站的管理方式有两种,一是静态HTML页面,更新信息时需要重新制作页面然后上传页面并修改相应链接,然而随着Internet的进一步发展,这种静态Web站点的开发与维护变得越来越困难,而且不能与浏览者进行有效交互,从而使得这种方法已不多用。
二是基于ASP、PHP或者JSP和脚本语言,将动态网页和数据库结合,通过应用程序来处理信息,这是目前较为流行的做法。
本文论述的就是采用JSP+Tomcat+SQL开发环境开发动态的Web网络新闻发布系统。
我们在开发的时候分了3个阶段:
系统分析、系统设计、系统实施。
其中系统设计主要包括了系统整体设计和详细设计2部分;系统实施主要包括前台和,后台和网站测试3个部分。
关键字:
Abstract
Networkinformationmanagementplatformforcollaborativeteachingtoconstructivistlearningtheoryandsystemtheoryasaguide,Web-basedcollaborativelearningapproach,reflectingmodernnetworkCo-operativeEducation"anyperson,anywhere,anytime,fromanychapterbegantolearnofanycontent,andanypeopletodiscusslearning"feature.Analysisofthisplatformwehavedevelopedtheobjectivesandsignificance;introducedthefunctionsofthesystemdesign;proposedtheimplementationofthesystemdevelopmentenvironment,researchmethodsandtechnicalline.Thesystemusesobject-orientedanalysisanddesign,onthewholethree-tierarchitectureusingadesignapproachhasgreatlyimprovedthecodereusabilityandreadabilityandimprovetheuserexperienceandsystemperformance,andsimplifythesystemdevelopment.Thesystemhasrealizedthebulletinmanagement,e-mail,WebQ&A,e-operations,andautomatictestpaperandWebself-testfunctions.
Keywords:
第1章绪论
1.1系统的研究目的和意义
在Internet飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。
Internet上发布信息主要是通过网站来实现的,获取信息也是要在Internet“海洋”中按照一定的检索方式将所需要的信息从网站上下载下来。
因此网站建设在Internet应用上的地位显而易见,它已成为政府、企事业单位信息化建设中的重要组成部分,从而倍受人们的重视。
由于时间有限,加之信息系统开发经验的缺少和编程能力的有限,所以本系统难免存在各种各样的缺点。
敬请指导老师能够提出批评和宝贵意见,也希望各位读者提出宝贵意见并进行指正,谢谢!
1.2开发工具的选用和介绍
本系统的开发环境是PHP+Apache+MySQL+Smarty,我用的是Wamp组合服务器。
主要开发工具有EclipseforPHP,是一个代码和浏览相结合PHP开发工具,数据库使用的是phpMyAdmin2.11.6和powerdesinger12.5相互协作开发,其它辅助工具还有,Dreamweaver8.0和1stJavaScriptEditorpro3.8,这两个工具主要用于HTML标签语言和JavaScript脚本语言的编写。
1.3可行性分析
本系统属于数据信息发布与管理系统类。
用户对功能上的要求不是很复杂,而且有强大工具和框架环境支持。
新闻发布系统后台管理对新闻做了详细的分类,前台以分类形式显示新闻的详细信息,满足了人们浏览新闻时分类查看新闻信息的要求,前台提供查询新闻信息功能,方便浏览者查找相关的新闻信息新闻。
新闻发布系统后台由管理员进行管理维护,保证了网站的安全性,所以本系统是十分可行的。
1.5数据流图
数据流图是组织中信息运动的抽象,是新闻发布系统逻辑模型的主要形式。
它是采用自顶向下逐层扩展的方法,从逻辑上精确地描述系统具有的数据加工、数据存储、数据输入输出及数据来源和去向等功能。
这个模型不涉及硬件、软件、数据结构与文件组织,它与对系统的物理描述无关,所描述的内容是面向用户的,是系统设计的主要依据之一。
数据流图的符号说明如图3.3所示:
外部项加工数据存储数据流
图3.3数据流图图例
根据调查材料,明确系统外部项,识别数据输入的来源和输出的去处,自顶向下逐层扩展整个系统的逻辑功能。
1.5数据字典
上面讨论的数据流图只能给出系统逻辑功能的一个总框架而缺乏详细、具体的内容,因此我们还需要建立数据字典。
建立数据字典是为了对数据流程图上各个元素做出详细的定义和说明。
数据字典以一种准确的和无二义的方式定义所有被加工引用的数据流和数据存储。
数据流程图配以数据字典,就可以从图形和文字两个方面对系统的逻辑模型进行描述,从而形成一个完整的说明。
数据字典有助于数据的进一步管理和控制,为设计人员和数据库管理人员在数据库设计、实现和运行阶段控制有关数据提供依据。
数据字典描述的主要内容有:
数据流、数据元素、数据存储、加工外部项。
第2章需求分析
2.1需求说明
该系统在性能功能上应达到如下需求:
操作简单、界面友好、完全控件式的页面布局,使得新闻的录入工作更简便,许多选项包括新闻分类、新闻列表、新闻出处等只需要点击鼠标就可以完成;另外,跟踪出现的提示信息也让用户随时清楚自己的操作情况。
对常见网站的新闻管理的各个方面:
新闻录入、浏览、删除、修改、搜索等方面都大体实现,实现了网站对即时新闻的管理要求。
通过相关调查,要求该系统应具有以下功能:
1.通过网络浏览各类新闻及相关信息。
2.新闻能分类显示相关信息。
3.提供站内新闻的搜索功能。
4.支持其它网站的友情链接。
5.为后台管理提供管理入口。
6.后台编辑个类新闻并且管理新闻信息。
2.2用户及其特点
对于本系统,用户共分为两类:
普通用户、管理员,各有不同的权限。
(一)普通用户:
此类用户具有以下权限:
1.浏览已发布的新闻。
2.查看、修改和删除自己的注册信息。
3.发表评论。
4.查看其它普通用户的评论。
5.登录后可以对个人密码进行修改。
6.可与其他普通用户进行交流,收发信息。
(二)管理员:
此类用户具有以下权限:
1.浏览所有网页。
2.具有管理普通用户的权限。
3.发布公告信息,可供用户浏览。
4.对不合适和没用的评论进行删除。
5.向数据库导入各用户的注册信息信息。
6.登陆后可修改个人密码。
7.可以删除任何一个普通用户的所有信息。
2.3用例图
图2-2系统顶级用例图
2.4结构图
图2-2系统结构图(HIPO图)
2.5实体关系图
新闻发布系统的数据库设计中,首先要对系统分析得到的数据字典中的数据存储进行分析,分析各数据存储之间的关系,可采用E-R图进行数据结构分析。
E-R图是概念模型最常用的表示方法,在E-R图中:
1.用长方形表示实体型,在框内写上实体名。
1.用菱形表示实体间的联系,菱形框内写上联系名,用无向边把菱形分别与有关实体相连,在无向边旁标上联系的类型。
若实体间的联系也具有属性,则把属性和菱形也用无向边连上。
新闻发布系统的E-R图2-3所示:
第3章系统分析与总体设计
很多网站都提供新闻栏目,例如腾讯、新浪等著名网站的新闻专栏。
许多学校和个人网站也需要定期发布一些关于企业或网站的新闻。
因为网络中新闻发布的频率非常高,如果使用静态网页作为新闻页面,则维护工作将会非常繁琐,管理员每天需要制作大量的网页,从而浪费很多时间和精力。
使用新闻发布及管理系统(PHP制作的动态网页)可以使新闻发布和管理变得很轻松,管理员只需设置标题、内容、作者和图片等新闻就可以了,系统将自动生成对应的网页。
本文将对新闻发布及管理系统进行系统分析与总体设计。
3.1系统功能描述
新闻发布及管理系统包括新闻类别管理、新闻发布管理、新闻查询、网友评论和用户管理等模块。
具体描述如下:
1.新闻类别管理:
(1)新闻类别的录入,包括类别编号和类别名称等信息;
(2)新闻类别的修改;
(3)新闻类别的删除;
(4)新闻类别的查询。
2.新闻发布管理:
(1)基本新闻信息的录入,包括新闻标题、新闻作者、新闻内容和所属类别等;
(2)基本新闻信息的修改;
(3)基本新闻信息的删除;
3.新闻查询模块:
(1)按照新闻类别分页显示新闻;-
(2)按照日期分页显示新闻。
4.网友(普通用户)留言模块:
(1)网友对某条新闻发表评论;
(2)管理员可以删除新闻评论。
5.普通用户管理功能:
(1)普通用户信息的录入,包括用户名和密码等信息;
(2)普通用户信息的修改;
(3)普通用户信息的删除。
3.2系统功能模块划分
图3-1新闻发布系统功能模块关系图
在本系统中,用户管理模块的功能比较简单。
在系统初始化时,有一个默认的“系统管理员”用户Admin,由程序设计人员手动地添加到数据库中。
Admin用户可以创建用户、修改和删除用户;普通用户则只能修改自己的用户名和密码。
图3-2普通用户功能模块关系图
3.3系统的概要设计
本项目是基于PHP+Apache+MySQL的WEB应用系统,采用B/S模式。
B/S模式的优势是系统开发、维护和升级方便,管理成本较低。
用户界面一致,使用简单,能实现不同的人员,从不同的地点,以不同的方式访问和操作;一般客户机不需要额外安装新的软件,只需安装有浏览器就可以进行操作。
方便维护管理,应用程序运行在服务器端,这样便于系统的管理、更新和升级,降低了服务端和客户端之间的依赖性,同时通过了应用程序代码的安全性,有效地保护系统平台和服务端的数据库的安全。
图3-5系统分层图
3.4系统流程分析
为了使读者进一步了解本实例系统的设计,本小节将对系统进行流程分析。
多用户系统的工作流程都是从用户登录模块开始,对用户的身份进行认证。
身份认证可以分为以下两个过程:
(1)确认用户是否是有效的注册用户。
(2)确定用户的类型。
第1个过程决定用户能否进入系统。
第2个过程根据用户的类型决定用户的操作权限,从而决定用户的工作界面。
本系统分为前台系统和后台系统两个部分。
前台系统不需要进行身份认证,任何人都可以通过浏览器阅读已经发布的新闻、发表网友评论。
后台系统的流程分析如图3-4所示。
Admin用户拥有所有的权限,普通用户只能对自己发布的新闻进行管理,包括修改新闻内容、删除新闻和删除网友评论。
图3-4后台系统的流程分析图
3.4系统的概要设计
第4章系统分析与总体设计
这一章将介绍系统的数据库表结构和创建表的脚本。
4.1数据库的创建
本系统用的是MySQL数据库,创建是用phpMyAdmin网页式的数据库工具来完成的。
首先创建一个数据库news_php100,用来保存本系统的所有数据。
4.2数据库的逻辑结构设计
根据用户需求,共创建了5个表,分别为:
系统配置表:
p_config、系统用户表:
p_admin、新闻分类表:
p_newsclass、新闻基本表:
p_newsbase、新闻内容表:
p_newscontent。
以下是新闻发布系统的数据库表结构的详细描述:
1.系统用户表:
p_admin系统用户表:
p_config
用系统用户表来保存系统用户(管理员)的基本信息。
序列编号
字段名称
数据类型
说明
1
uid
int(3)
2
m_id
int
(2)
3
username
varchar(25)
4
password
varchar(50)
5
name
varchar(50)
图4-1系统用户表:
p_admin
2.系统配置表:
p_config
用系统配置表来保存相关配置信息。
序列编号
字段名称
数据类型
说明
1
name
varchar(20)
2
values
varchar(100)
3
remark
tinytext
图4-2系统配置表:
p_config
3.新闻基本表:
p_newsbase
用新闻基本表来保存新闻列表的相关信息。
序列编号
字段名称
数据类型
说明
1
id
int(11)
2
cid
int(11)
3
title
varchar(50)
4
author
varchar(25)
5
date_time
int(10)
图4-3新闻基本表:
p_newsbase
4.新闻分类表:
p_newsclass
新闻分类表主要用来保存新闻的分类信息。
序列编号
字段名称
数据类型
说明
1
id
int(11)
2
f_id
int(11)
3
name
varchar(25)
4
keyword
varchar(100)
5
remark
varchar(100)
图4-4新闻分类表:
p_newsclass
5.新闻内容表:
p_newscontent
此表主要用来保存各条新闻的详细内容信息。
序列编号
字段名称
数据类型
说明
1
nid
int(11)
2
keyword
varchar(100)
3
content
text
4
remark
text
图4-5新闻内容表:
p_newscontent
图4-6新闻发布系统数据库各表关联图
第5章目录结构与模块划分
5.1目录结构
在运行实例时,需要将web目录复制到wamp目录下的www子目录下,该系统的目录结构如图5-1所示:
图5-1新闻发布系统目录结构图
5.2模块划分
系统功能模块的划分,是在需求分析基础上进行的,是把具有复杂功能的系统通过设计分解为具有基本独立,功能简单,易于实现等特点的多个功能模块。
模块划分的好处是,由于组成系统的模块基本独立,功能明确,因此便于模块的独立开发、维护和修改,而不会影响系统中的其他模块。
模块的划分应该遵循低耦合,高聚合的划分原则。
耦合的高低表示模块之间联系程度的强弱。
聚合表示一个模块内部组成之间的联系程度。
低耦合就表示模块之间的联系越弱,反之,则联系程度强。
耦合度越低,说明模块之间的联系越弱,则相互间产生影响和连锁反应的概率就越小。
也就是说当某个模块出现故障或者需要修改和维护时,对系统其他模块产生的影响就小。
该原则有助于提供系统的可维护性和可扩展性。
网络教学平台建设的总体功能由以下几大模块构成:
不同的文件放于不同的文件夹中,方便系统调用。
admin文件夹主要放管理员模板文件;common主要放css和js文件;config主要放配置文件,包括数据库链接和常量声明文件,方便其它模板调用;images文件夹主要用于存储图片;templates和templates_c是Smarty的两个文件夹,是前台和后台相互桥梁,主要存储前台文件(html文件);global.php是通用模块,存储一些通用的代码信息,减少了代码的重复书写,供其它模块调用;index.php是网站首页。
第6章详细设计和实现
第7章总结
经过几个月的努力学习和实践,我在理论和实践两方面的能力都得到了锻炼。
对WEB技术如HTML,CSS,JavaScript,PHP等知识都进行了很好的练习。
在这个系统新闻发布系统中通过对新闻列表、新闻分类、新闻发布、新闻添加与删除等常见功能额设计与实现,进一步了解程序的编写过和规范。
如DIV+CSS和FrameSet框架的使用提高了网站的浏览速度和浏览者的使用效率;公共类和公共模块的编写提高了应用程序的开发效率。
经过一个完整项目的开发我也对软件开发的过程也有了新的认识和理解。
对面向对象的分析和设计,对设计模式都通过实践有了更加深刻的认识。
参考文献
温馨提示-专业文档供参考,请仔细阅读后下载,最好找专业人士审核后使用!