




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计 ( 2010届 )论文题目 基于PHP的小型内容管理系统的 研究与开发 THE RESEARCH AND DEVELOPMENT OF CONTENT MANAGEMENT SYSTEM BASED ON PHP 学 生 姓 名: 陈 晨 学 号: 06080602112 二级学院名称: 电子信息学院 专 业: 信息管理与信息系统 指 导 教 师: 陈能干 职 称: 副教授 . 郑 重 声 明 我谨在此郑重声明:本人所写的毕业论文基于PHP的小型内容管理系统的研究与开发均系本人独立完成,没有抄袭行为,凡涉及其他作者的观点和材料,均作了注释,若有不实,后果由本人承担。 承诺人(签名): 年 月 日基于PHP的小型内容管理系统的研究与开发摘要:随着网络应用的丰富和发展,很多网站往往不能迅速跟进大量信息衍生及业务模式变革的脚步,而内容管理系统恰恰能够通过对企业各种类型的数字资产的产生、管理、增值和再利用,以改善组织的运行效率和企业的竞争能力,企事业单位也开始认识到内容管理系统的重要性。本论文通过研究内容管理系统的特点和需求,设计和开发出一个基于PHP的内容管理系统。论文首先介绍了内容管理系统的背景、意义, 然后介绍了内容管理系统的相关技术基础,如PHP、MVC技术等,接着介绍了系统体系结构设计的思想,选择与内容管理系统有关的开发环境, 并结合B/S结构、框架概念,开发研究了内容管理系统。关键词:内容管理系统;PHP;ThinkPHP;MVCTHE RESEARCH AND DEVELOPMENT OFCONTENT MANAGEMENT SYSTEM BASED ON PHPABSTRACT: With the enrichment and development of network applications, many websites are often not promptly follow up on a lot of information derived from the pace of change and business model, and content management system for enterprise precisely through the production of various types of digital assets, management, value-added and re-use to improve the organizations operational efficiency and competitiveness of enterprises, enterprises are beginning to recognize the importance of content management systems.This thesis passes and studies characteristic and demand of content management system design and develop a system of content management based on PHP (Personal home page/Hypertext Preprocessor). The thesis has introduced the background, meaning of content management system at first, then introduced the relevant technological foundations of content management system, such as PHP, MVC technology, etc., then has introduced the thought of the structural design of systematic system, choose the development environment related to content management system, combine advanced concepts such as B/S structure, frame, have developed and studied content management system. Key words: content management system; PHP; ThinkPHP; MVC浙江传媒学院本科毕业论文 基于PHP的小型内容管理系统的研究与开发目 录1 绪论11.1 系统开发背景与意义11.2 课题主要内容11.3 论文结构22 内容管理系统技术基础22.1 内容管理系统概述22.1.1 什么是内容管理系统22.1.2 内容管理系统的基本特征22.2 相关技术32.2.1 PHP32.2.2 Apache42.2.3 MySQL42.2.4 Zend Studio52.2.5 Jquery52.2.6 Ajax52.3 MVC开发模式62.4 系统设计流程72.5 ThinkPHP框架83 内容管理系统总体设计93.1 系统的需求分析93.1.1 系统基本功能93.1.2 系统的性能需求93.1.3 数据字典93.1.4 系统的开发平台103.2 系统总体设计103.2.1 系统各个模块简述103.2.2 系统功能图113.2.3 系统用例图的设计113.2.4 系统数据流程113.3 数据库的设计124 系统的实现134.1 系统文件结构134.2 系统主要模块实现144.2.1 留言子模块的实现144.2.2 搜索子模块的实现154.2.3 订单子模块的实现164.2.4 主题子模块的实现174.2.5 产品列表子模块的实现185 系统测试和分析195.1 测试目的195.2 测试过程196 结束语20致谢21参考文献221 绪论1.1 系统开发背景与意义内容管理从2000年开始成为一个重要的应用领域,这时.COM和B2B, B2C等经历了资本和市场的考验及洗礼,人们重新回到信息技术应用的基本面如何提高竞争能力,而内容管理恰恰能够通过对企业各种类型的数字资产的产生、管理、增值和再利用,以改善组织的运行效率和企业的竞争能力,企事业单位也开始认识到内容管理的重要性。随着网络应用的丰富和发展,很多网站往往不能迅速跟进大量信息衍生及业务模式变革的脚步,常常需要花费许多时间、人力和物力来处理信息更新和维护工作;遇到网站扩充的时候,整合内外网及分支网站的工作就变得更加复杂,甚至还需重新建设网站;如此下去,用户始终在一个高成本、低效率的循环中升级、整合。最后导致页面制作无序,网站风格不统一,大量信息堆积,发布显得异常沉重;内容繁杂,手工管理效率低下,手工产品列表视音频信息经常无法实现;应用难度较高,许多工作需要技术人员配合才能完成,角色分工不明确;改版工作量大,系统扩展能力差,集成其它应用时更是降低了灵活性; 国外从事内容管理软件研发的主要厂商包括Vignette,Interwoven,oadVision, Openmarket,ATG, Allaire, Documentum, Hummingbird等,这些公司CMS产品和解决方案专业性很强,大多基于J2EE等平台,功能丰富,主要面向企业级用户,是CMS市场的主要厂商。还有一些更窄的专业厂商提供内容管理某个阶段需要的功能,如Verity 提供知识检索,Micromedia 提供内容创作平台,Akamai和Inkitomi 提供内容分发管理技术等。与此相反,Microsoft, IBM, Oracle等公司提供通用平台性CMS解决方案。这是一个新兴的领域,并且已经逐渐开始形成了一股新的热潮。内容管理系统时代的到来必将会带动其他各个领域的发展,如程序商,空间、域名服务商,内容管理营销网站,广告等,这这些都是直接的受益者。一旦内容管理系统成为新的主流,那么其所带来的影响将远远不止这些。因此,内容管理系统有广大的开发和应用前景。11.2 课题主要内容课题的主要研究工作分为两个部分:一是针对内容管理系统的特点和需求,研究内容管理系统。二是研究相关内容管理系统的开发过程,分析内容管理系统开发的特殊要求。主要从以下几点出发:(1) 确定开发思路:通过对内容管理系统现状、理论和技术研究,结合具体需求和特点,对内容管理系统的开发思路进行了分析与确定。(2) 分析详细的系统功能:通过翻阅大量文献资料与实践调查,确定内容管理系统应该实现的系统基本功能。(3) 从整体把握课题:包括整个系统的结构层次、网络的架构,功能的模块的划分,技术关键点和难点落实等。(4) 系统各部分逐一落实:包括如何编写各个模块实现其相应的功能,以及各模块之间的相互连接与统一。 (5) 系统的集成和调试:在所有功能和子系统都被实现后,将各个功能模块、子系统集成为一个完整的系统,然后经过反复的测试、调试和修改,最终使系统达到预期的目标。 1.3 论文结构 全文共分为六章。第一章主要介绍了内容管理系统的课题背景与意义,阐述了内容管理系统的发展现状以及未来发展的方向, 最后简要介绍了系统的主要工作内容。第二章首先介绍了内容管理系统的技术基础及平台,其中包括网络编程语言PHP、本地服务器Apache以及数据库MySQL和MVC的开发模式等。第三章介绍了有关内容管理系统设计的总体构想与思路, 并介绍了各模块和数据库的设计。第四章,以内容管理系统中各个子模块为例介绍了功能的设计实现以及相关代码。第五章是系统的测试和分析,主要针对课题的实际可操作性进行测试并改进。第六章是结束语,对本次课题进行了总结以及对不足处的提出和以后的展望。2 内容管理系统技术基础2.1 内容管理系统概述2.1.1 什么是内容管理系统CMS是Content Management System的缩写,意为内容管理系统。CMS的功能并不只限于文本处理,它也可以处理图片、Flash动画、声像流、图像甚至电子邮件档案。内容管理系统是一种位于WEB前端(Web 服务器)和后端办公系统或流程(内容创作、编辑)之间的软件系统。内容管理解决方案重点解决各种非结构化或半结构化的数字资源的采集、管理、利用、传递和增值,并能有机集成到结构化数据的商业智能环境中,如OA,CRM等。内容的创作人员、编辑人员、发布人员使用内容管理系统来提交、修改、审批、发布内容。这里指的内容可能包括文件、表格、图片、数据库中的数据甚至视频等一切你想要发布到 Internet、Intranet以及Extranet网站的信息。 22.1.2 内容管理系统的基本特征不管是个人用户、软件公司的专业服务组还是一个系统综合体,在很多情况下都要依靠软件包来安装、配置系统,并对模板进行设计和加密。应用服务供应商一般会为了这样的设置收取用户的一次性付款,这笔款项包括开户费、对用户客户管理提供帮助以及在系统上建立用户终端界面的费用。一些应用服务供应商也为用户提供了建立终模板的帮助服务,用户还能够通过他们与你的合作伙伴联系。当然,你不必为安装系统和客户软件而发愁,因为每一件事都可以通过浏览器来完成。把内容管理系统从企业文件管理系统中分离出来的构想还包括工作流程和程序控制工具。在很多公司里,使用内容管理系统的最关键原因就是由于工作流程的缘故,作为一个管理者、法律部门、普通编辑或是网页发行者都必须在发送这些文书或是网页之前签署您的大名。很多内容管理系统就有过人之处,它们提供了电子邮件识别这样的特征,这样一个相同的内容就为批准、分流和平行发送这三种工作流程准备好了三种不同的路径。然而,一个常见的内容管理系统错误是建立了复杂的工作流程模式,这种模式太程序化了,当用户的需要变化是很不容易被修改-也就是说一个低终端的系统可能会是一个比较好的选择。32.2 相关技术2.2.1 PHPPHP最初出现于1994年,是PHP/FI(个人主页/表单解释器,Personal Home Page/Forms Interpreter)的一系列脚本。随着PHP的逐步发展,PHP指的不再是“个人主页(Personal Home Page)”,而是“PHP超文本预处理器(PHP Hypertext Preprocessor)”。PHP是完全免费的,不用花钱,你可以从PHP官方站点()自由下载。你可以不受限制的获得源码,甚至可以从中加进你自己需要的特色。PHP在大多数Unix平台,GUN/Linux和微软Windows平台上均可以运行。使用PHP进行Web应用程序开发,具备如下的优点:(1) 可使用服务器端的脚本来产生客户端的脚本。使用VBScript、JavaScript等简单易懂的脚本语言,结合HTML代码,即可快速地完成网站的应用程序;(2) 无须编译,容易编写,可在服务器端直接执行;(3) 使用普通的文本编辑器,如Windows的记事本,即可进行编辑设计;(4) 与浏览器无关(Browser Independence), 客户端只要使用可执行HTML码的浏览器,PHP所使用的脚本语言均在WEB服务器端执行,客户端的浏览器不需要能够执行这些脚本语言的功能;(5) PHP能与任何用C语言、Java语言所开发的扩展兼容。PHP主要功能与应用有如下三大领域: (1) 服务器端脚本(Server-side Script):即最常用的Web程序开发; (2) 命令行/Shell脚本(CLI/Command line Script):用以做系统自动化与监测脚本; (3) 客户端用户界面(Client-side GUI Application):使用PHP GTK可以编写类似于VB/Delphi的桌面应用程序。本系统选择PHP开发的理由是: (1) 简单易学; (2) 有众多的扩展类库; (3) 有活跃的用户群、广大的开发者社区; (4) 安全性高; (5) 运行稳定。2.2.2 Apache Apache,中文名称为阿帕奇,是一种开放源码的HTTP服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性而被广泛使用,是最流行的Web服务器端软件之一。Apache是1994年源于IBM公司的NCSA小型Web服务器项目。它和PHP的发展很相似,最初是靠热心的程序员或网管以补丁(Pacth)的形式来维护的,从1.3版本开始起以Apache的正式名称提供给所有用户免费下载使用,且开放源代码。4本系统采用Apache2.2,其特性如下: (1) 模块化:支持多种语言或脚本引擎,如PHP、Perl/ModPerl、JSP/Servelet等。 (2) 安全性高:由于开放源代码,通常会在安全性问题被及时发现并解决后发布新的版本。 (3) 扩展性好:支持多种操作系统,如MS Win32/FreeBSD/Linux/OS2等平台。 (4) 可移植性:在这些异构操作系统,配置与安装基本相似。 (5) 性能优越:可以自定义运行参数、编译环境,以适应不同的Web环境的承载。 (6) 多线程:Apache2支持UNIX运行POSIX线程,在Windows下为多线程模式。 (7) 自定义错误文档:管理员可以方便地更改错误页面。 (8) 多语种支持:支持UTF-8、GB2312、Shift JIS、BIG5等多种字符集编码。 Apache是服务器软件始终不断进化的大块部件,它免费但又是无价之宝。Apache是在资源开放运动中出现的绝对珍品,因为不属于个人专利而是对公共免费。一旦拥有这些源码,程序员能够自由完成所想能在其它程序员接替工作时被赋予同样的权限来改变和修改自己的源代码。2.2.3 MySQL MySQL是一个真正的多用户、多线程SQL数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。MySQL是以一个客户机/服务器(B/S)结构的实现,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。(1) MySQL是一个数据库管理系统。一个数据库是一个结构化的数据集合。它可以是从一个简单的销售表到一个美术馆或者一个社团网络的庞大的信息集合。如果要添加、访问和处理存储在一个计算机数据库中的数据,你就需要一个像MySQL这样的数据库管理系统。从计算机可以很好的处理大量的数据以来,数据库管理系统就在计算机处理中和独立应用程序或其他部分应用程序一样扮演着一个重要的角色。(2) MySQL是开源的。开源意味着任何人都可以使用和修改该软件,任何人都可以从Internet上下载和使用MySQL而不需要支付任何费用。如果你愿意,你可以研究其源代码,并根据你的需要修改。MySQL使用GPL(GNU General Public License,通用公共许可),在/licenses中定义了你在不同的场合对软件可以或不可以做什么。如果你觉得GPL不好或者想把MySQL的源代码集成到一个商业应用中去,你可以向MySQL AB购买一个商业许可版本。5(3) MySQL服务器工作在客户/服务器(B/S)中。MySQL数据库服务器是一个客户/服务器(B/S)系统,它由多线程SQL服务器组成,支持不同的后端、多个不同的客户程序和库、管理工具和广泛的应用程序接口(API)。2.2.4 Zend Studio Zend Studio是一个屡获大奖的专业PHP集成开发环境,具备功能强大的专业编辑工具和调试工具,支持PHP语法加亮显示,支持语法自动填充功能,支持书签功能,支持语法自动缩排和代码复制功能,内置一个强大的PHP代码调试工具,支持本地和远程两种调试模式,支持多种高级调试功能。2.2.5 JqueryjQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多JavaScript高手加入其team,包括来自德国的Jörn Zaefferer,罗马尼亚的Stefan Petre等等。jQuery是继prototype之后又一个优秀的JavaScript框架。其宗旨是WRITE LESS,DO MORE,写更少的代码,做更多的事情。6它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。jQuery是一个快速的,简洁的JavaScript库,使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互。jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。jQuery能够使用户的html页保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。2.2.6 Ajax(1)什么是AjaxAjax(阿贾克思)是Asynchronous JavaScript and XML的缩写,即异步JavaScript和XML。Ajax是一种客户端技术,Ajax技术借助异步JavaScript实现浏览器和服务器之间的异步交互,即相当于在Web应用中实现了原来C/S(Client/Server)结构下的交互结果,且这种效果的实现并没有带来繁琐的客户部署工作。比如:无需重新加载整个页面就可以想服务器发送请求,并接受响应。同时对XML文档解析和处理。Ajax相当于在浏览器客户端与服务器之间架设了一个桥梁、一个媒介,在它的帮助下,可以消除网络交互过程中的“处理等待处理等待”的缺陷。在处理过程中Web服务器响应是标准的且易于解析的XML格式的数据传递给Ajax,然后再转换成HTML页面的格式,辅助CSS进行显示。Ajax是使用XML Http Request对象发送请求并获得服务器端的响应,同时Ajax可以在不重新载入整个页面的情况下用JavaScript操作DOM以实现最终更新页面。因此在读取数据的过程中,用户面对的不是白屏,而是原来的内容。这种更新是瞬间的,使用户感觉是连贯的。10借助Ajax,可以把以前一些原本由服务器负担的工作转移到客户端来完成,利用客户端闲置的能力来进行处理,这样也可以有效地减轻服务器和带宽的负担,使服务器更稳定,更良好的运行,同时节约了空间和宽带。(2)Ajax相关技术介绍Ajax是多种技术的综合应用,包括JavaScript脚本、CSS、DOM和重要对象XML Http Request。 JavaScript是一种可以与HTML标记混合使用的脚本语言,编写的程序可以直接在浏览器中解释执行。因此使用脚本语言编写程序可以在浏览器支持下跨平台运行。JavaScript脚本中可以调用浏览器及Ajax中提供的相关对象。利用这些对象的属性方法可以实现页面效果的动态控制。 CSS是层叠样式表。CSS规则由模式匹配段和操作部分组成。模式匹配段用于表示元素与行为之间的关联性;操作部分用于确定对指定部分的操作。CSS层叠样式可以弥补HTML超文本标记语言在格式修饰中的不足,同时也为能够实现页面格式的批量动态更新。 DOM的全称是文档对象模型(Document Object Model),它在本质上是一种文档平台。在使用Ajax技术中,借助DOM,可以结合脚本语言实现动态的数据存储以及动态上传文件。 XML Http Request是Ajax技术中最重要的一个对象。页面可以在不刷新的情况下通过它发送请求来获取服务器响应,也可以使用该对象在不刷新当前页面的情况下更新页面中的数据。2.3 MVC开发模式MVC由Trygve Reenskaug提出,首先被应用在SmallTalk-80环境中,是许多交互和画面系统的构成基础。MVC结构是为那些需要为同样的数据提供多个视图的应用程序而设计的,它很好地实现了数据层与表示层的分离。MVC作为一种开发模型,通常用于分布式应用系统的设计和分析,以及用于确定系统各部分间的组织关系。对于画面设计可变性的需求,MVC(Model-View-Controller)把交互系统的组成分解成模型、视图、控制器3种部件。(1) 模型部件(Model)保存由视图显示、由控制器控制的数据;它封装了问题的核心数据、逻辑和功能的计算关系,它独立于具体的画面表达和I/O操作。(2) 视图部件(View)把表示模型数据及逻辑关系和状态的信息以特定形式展示给用户。它从模型获得显示信息,对于相同的信息可以有多个不同的显示形式或视图。(3) 控制器部件(Controller)是处理用户与软件的交互操作的,其职责是控制提供模型中任何变化的传播,确保用户画面与模型间的对应联系;它接受用户的输入,将输入反馈给模型,进而实现对模型的计算控制,是使模型和视图协调工作的部件。PHP的MVC模型如下图所示: $_SESSION $_COOKIE Model $_FILE Business HTTP($_POST、$_GET$_、REQUEST) DB句柄 Logic PHP CLI File句柄 SOAP Controller XML-RPC Application Flow HTML/XHTML View XML Presentation XSLT Layer WML 文本文件 图片文件 其他类型文件 图2-3 MVC模式模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其他依赖于这些数据的视图都应反映了这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。72.4 系统设计流程需求分析概要设计详细设计系统测试编写代码图2-4 系统设计流程图(1) 需求分析本阶段主要对内容管理系统的需求情况进行调查收集,将用户对该系统的任何需求通过各种方式进行收集,比如采用问卷的形式,实地询问用户等形式进行。最终目的就是了解用户对该系统有何要求、有何期望,简单的说就是要知道用户希望内容管理系统要完成什么功能,如何才能满足用户的需要。(2) 概要设计概要设计部分主要对内容管理系统有一个大概的设计介绍,对内容管理系统的概要设计部分主要包括如下内容:开发与设计的整体思想、系统的组成结构、各个模块的设计内容、系统安全设计等。其中开发与设计的整体思想主要是对内容管理系统的开发与设计的整体思路进行介绍。系统的组成结构主要包括硬件设施结构和软件系统结构,硬件设施结构部分对内容管理系统使用的硬件设施作介绍,而软件系统结构则对内容管理系统的软件整体设计结构给出介绍。各个模块的设计主要包括内容管理系统的登陆、内容浏览、系统管理模块逐一介绍。系统安全设计部分主要对内容管理系统中如何保证系统安全的措施给出说明。(3) 详细设计详细设计部分则是在概要设计的基础上对内容管理系统作出更为详细的介绍。主要对各设计包中的各个类作出说明,包括对每个类如何在以后的程序设计中的定义作出介绍,并作出相应的说明,并对各参数作出介绍。(4) 编写代码这一部分主要根据前面的详细设计内容,用具体语言实现内容管理系统。本系统主要采用PHP语言实现,这一部分主要是代码实现,将前一阶段的设计思想实现,因为前面已经对该系统的整体设计思路和整体框架作出了说明,并且在详细设计部分对每个设计包中的类如何实现也已给出,所以在这一部分工作量也不是太大。(5) 系统测试系统测试部分主要对前面已经实现的系统作出测试,看该系统是否符合系统设计要求。并对一些特殊的数据进行测试,比如一些临界值,看是否符合要求,在测试的基础上,对发现的错误进行改正,使系统逐步得到完善。测试不是一朝一夕就能完成的,必须在今后的使用过程中逐渐完善,并得到用户的反馈后对系统作出修改。内容管理系统主要采用了软件工程的设计思路,各部分都遵从软件工程的设计要求。2.5 ThinkPHP框架ThinkPHP是一个开源的PHP框架, 是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。最早诞生于2006年初,原名 FCS,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布。早期的思想架构来源于Struts,后来经过不断改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的Action和Dao思想和JSP的TagLib(订单库)、RoR的ORM映射和ActiveRecord模式,封装了CURD和一些常用操作,单一入口模式等,在模版引擎、缓存机制、认证机制和扩展性方面均有独特的表现,也已经越来越多地受到国内PHP开发人员的认可。使用ThinkPHP,你可以更方便和快捷的开发和部署应用,当然不仅仅是企业级应用,任何PHP应用开发都可以从ThinkPHP的简单、兼容和快速的特性中受益。简洁、快速和实用是ThinkPHP发展秉承的宗旨,为此ThinkPHP会不断吸收和融入更好的技术以保证其新鲜和活力,提供WEB应用开发的最佳实践!8作为一个整体开发解决方案,ThinkPHP能够解决应用开发中的大多数需要,因为其自身包含了底层架构、兼容处理、基类库、数据库访问层、模板引擎、缓存机制、插件机制、角色认证、表单处理等常用的组件,并且对于跨版本、跨平台和跨数据库移植都比较方便。并且每个组件都是精心设计和完善的,应用开发过程仅仅需要关注您的业务逻辑。3 内容管理系统总体设计3.1 系统的需求分析3.1.1 系统基本功能信息时代的今天,在网络中构建一个赋有个性化的内容管理系统,提供了一种可信任的和实时连通的网络环境,通过网络开放性和交互性的特点,让用户在任何时间、任何地点,通过网络方便地“生活”,不仅是信息传递与获取,还可以进行群体交流和资源共享,展示自我,为个人发展带来新机遇。本内容管理系统具有以下功能:(1) 完整的内容管理功能,包括内容的添加、修改、删除、审核等。(2) 支持附件上传功能,可以上传图片。(3) 要求具有强大的搜索查询功能。3.1.2 系统的性能需求一个系统设计的根本目的就是真正满足用户的实际需求,并采用先进、安全、成熟、可靠的技术来实现。鉴于当今技术发展的趋势,本系统采用B/S(浏览器/服务器)模式,使用PHP技术开发。本着既要保证系统的安全性、稳定性、高效性,又要为用户提供实用、方便、高效的操作环境的设计思想,来进行分析设计的。系统的安全性是指系统中所有数据的安全性,它包括数据的保密性、完整性、可用性、可控性。其中,数据的保密性就是在系统的实际运行中,要确保数据不能被未经授权者访问到,对此,本系统采用管理员帐户登录机制,通过较为安全的用户信息表来保存、维护用户的登录信息。数据完整性就是防止信息被未经授权者篡改,保证数据的正确性和完整性。数据可用性就是保证相关数据及信息系统确实为授权使用者所使用。本系统是面向单用户开发的系统,完成管理员在后台上进行各项操作,实现商家和客户之间的双向沟通。3.1.3 数据字典 数据结构设计的第一阶段也是主要的一个阶段是数据的需求分析。在这个阶段,根据所了解掌握的用户需求,进行了数据的采集和对数据的处理操作,以确保数据采集的详细准确,理清数据库中各个数据项的关系,这将为系统的设计打基础。在数据分析阶段要做到两点:(1) 调查清楚应用系统用户所需要操作的数据,决定存储什么数据。(2) 调查清楚应用系统用户要求对数据进行什么样的处理,理清各个数据项之间的关系。注意做到这两点是十分重要的要向系统用户详细调查保证信息的采集的完整性、一致性和准确性。在数据分析后要做到设计出一个数据字典文档包括三方面:(1) 数据项:包括字段名、字段的含义、类型定义以及和其他数据项的逻辑关系。(2) 数据结构:若干个数据项的有意义的集合,包括字段名称、含义以及组成的数据结构的数据项。(3) 数据流:指数据库中数据的处理过程,包括数据信息的输入、处理和输出。据此,可归结出内容管理系统所需完成的主体任务:(1) 基本信息的添加、修改和删除:包括产品信息、新闻、留言等信息。(2) 基本信息的查询:产品信息的查询。针对内容管理系统的总体需求,通过对内容管理系统管理过程的内容和数据流程分析与系统总体功能模块梳理,设计产生如下所示的数据项和数据结构:(1) 用户信息:用户名、密码等。(2) 分类信息:类型编号、类型名称等。(3) 内容信息:内容序号、内容标题、内容内容、所属类型等。3.1.4 系统的开发平台(1) 系统服务器为Apache2.2.4,数据库为MySQL,整个系统程序、界面采用Zend studio 6和Dreamweaver开发。(2) 系统采用ThinkPHP开源MVC框架。3.2 系统总体设计3.2.1 系统各个模块简述本系统主要由四大模块组成:新闻模块、留言、订单模块、产品模块和用户模块。(1) 新闻模块:用于管理发表的新闻的管理单元。包括新闻列表(新闻标题、发布时间)和新闻详细内容 (新闻标题、发布时间、正文内容)。(2) 留言、订单模块:普通用户可以在线留言、下订单,留言经审核后管理员才显示出来(3) 产品模块:管理员对产品及其所属分类进行添加、编辑、修改和删除。(4) 用户模块:用户组分为管理员和普通用户,管理员拥有所有操作权限,普通用户只能在前台浏览。3.2.2 系统功能图图3-2-2 系统功能图3.2.3 系统用例图的设计通过从用户的角度展示系统的功能,设计如下商品用例图: 图3-2-3 商品用例图3.2.4 系统数据流程订单留言新闻、产品用户的需求具体体现在各种信息的提供保存、更新和查询上,这就要求数据库结构应该满足各种信息的输入和输出。在仔细分析,调查有关用户信息管理需求的基础上,得到本系统的数据流程图。新闻、产品编辑订单编辑留言编辑新闻、产品浏览管理员订单填写普通用 户留言填写图3-2-4 数据流程图3.3 数据库的设计本系统中的数据管理形式采用数据库,根据系统需要与数据规范化分为留言表、产品信息表、用户表、新闻表、产品类别表、订单表这六个基本数据表。表3-3-1:留言表字段类型字段说明oid int(11)留言编号namevarchar(20)留言者昵称qqint(10)用户qq号码emailvarchar(20)用户email地址Titlevarchar(20)留言标题ContentVarchar(100)留言内容Create_timeInt(11)留言时间StatusTinyint(1)留言审核状态表3-3-2:产品信息表字段类型字段说明idint(10)产品编号titleText产品名称contenttext产品介绍cidInt(10)产品类别编号picVarchar(50)产品图片表3-3-3:用户表think_user字段类型字段说明idmediumint(8)用户编号acountvarchar(64)用户登录名passwordvarchar(32)用户密码 表3-3-4:新闻表字段类型字段说明idint (11)新闻编号titletest新闻标题contenttext新闻内容Create_timeint(10)新闻发布时间表3-3-5:产品类别表字段类型字段说明cidint(10)类别编号Classnamevarchar(20)类别名称表3-3-6:订单表字段类型字段说明0tidint(10)订单编号CompanyVarchar(40)客户公司Namevarchar(20)客户姓名Addressvarchar(40)客户现居住地址TelText客户联系电话FaxInt(10)客户传真号码urlvarchar(20)客户网站网址EmailVarchar(10)客户邮箱地址ContentText订单内容Create_timeInt(10)订单下达时间4 系统的实现4.1 系统文件结构一、系统目录(ThinkPHP框架目录)ThinkPHP.php 框架的公共入口文件Common包含框架的一些公共文件、系统定义、系统函数和惯例配置等Lang系统语言文件Lib系统基类库目录Tpl系统模板目录Mode框架模式扩展目录Vendor第三方类库目录二、应用目录(项目目录)index.php 项目入口文件(可以使用其他名称或者放置于其他位置)Common项目公共文件目录,一般放置项目的公共函数Conf项目配置目录,所有的配置文件都放在这里。Lang 项目语言包目录(可选)Lib项目类库目录,通常包括Action和Model子目录Tpl项目模板目录,支持模板主题Runtime项目运行时目录,包括Cache(模板缓存)、Temp(数据缓存)、Data(数据目录)和Logs(日志文件)子目录上面的只是默认方式,项目下面的目录名称和结构是可以重新定义的。其实项目目录并不需要开发人员手动创建,只需要定义好项目的入口文件之后,系统会在第一次执行的时候自动生成项目必须的所有目录结构(前提是项目目录具有可写权限,这点在Linux环境下面需要注意)。可以看出新版的目录结构更加便于部署和配置,因为只有Runtime目录才是需要具备可写权限的,在Linux环境下面可以更加快速的部署和配置目录权限。三、部署目录当我们实际部署网站的时候,目录结构往往由于项目的复杂而变得复杂。我们推荐的部署目录结构如下:ThinkPHP系统目录(下面的目录结构同上面的系统目录)Home项目目录(下面的目录结构同上面的应用目录)Admin后台管理项目目录 更多的项目目录index.php 网站的入口文件admin.php 网站的后台入口文件如果采用分组模块的话 可以简化为一个项目目录ThinkPHP系统目录(下面的目录结构同上面的系统目录)App项目目录Public网站公共目录index.php 网站的入口文件项目的模板文件还是放到项目的Tpl目录下面,只是将外部调用的资源文件, 包括图片 JS 和CSS统一放到网站的公共目录Public下面,分Images、Js和Css子目录存放,如果有可能的话,甚至也可以把这些资源文件单独放一个外部的服务器远程调用,并进行优化。这样部署的好处是系统目录和项目目录可以放到非WEB访问目录下面,网站目录下面可以只需要放置Public公共目录和index.php入口文件(如果是多个项目的话,每个项目的入口文件都需要放到WEB目录下面),从而提高网站的安全性。4.2 系统主要模块实现4.2.1 留言子模块的实现留言子模块主要是用于用户发表留言来咨询各方面的问题,将已经发表的内容按发表时间逆次顺序形成列表,使用户对所有留言内容一目了然。此模块页面如下图所示:图4-2-1-1 留言子模块界面工作流程:点击浏览留言传入Action名ScanURL提交到Contact模块的Scan从数据库提取留言Scan通过display()方法显示Scan模板图4-2-1-2 留言模块工作流程图4.2.2 搜索子模块的实现搜索子模块主要的作用是实现用户对产品的搜索。此模块采用了高级搜索的方式,可以通过输入关键字实现精确查找。借助该单元,能够对所有产品内容进行索引定位和搜索,查找满足要求的内容。此模块页面如下所示:图4-2-2-1 搜索子模块界面3秒后返回工作流程: 点击搜索按钮显示公共模板success检查输入是否为空是否进入error()方法传入Action名Search从产品表匹配用户输入的关键字Search通过display()方法显示Search模板URL提交到Index模块的Search图4-2-2-2 搜索模块工作流程图4.2.3 订单子模块的实现订单。它的作用是当客户不方便直接电话联系商家时,可以将信息提交给后台管理员,其界面如下:图4-2-3-1 订单子模块界面工作流程:否检查输入是否为空从产品表匹配用户输入的关键字Order通过display()方法显示Order模板传入Ac
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学科学小升初模拟测试题及答题卡
- 初中语文教师校本研修方案
- 杜美丝制造工抗压考核试卷及答案
- 考古探掘工岗位操作规程考核试卷及答案
- 空气压缩机验收流程及记录表范例模板
- 绩效管理优化路径分析报告
- 期刊订阅用户增长策略分析报告
- 运城护理招聘考试题库及答案
- 仓储物流合同协议模板范本
- 机械设备维护保养流程标准化
- 医疗机构工作人员廉洁从业九项准则
- 弹个车合同协议
- 护理职业礼仪与沟通技巧
- 高标准农田建设项目主要施工方案与技术措施
- “十五五”期间新型公共文化空间建设趋势及展望
- 肾小管酸中毒的药物治疗原则及用药时机
- 2025年《幼儿园区角活动》标准课件
- 2025年公路路面修复劳务承包合同
- SJG 55-2019 建筑起重机械防台风安全技术规程
- 业务连续性管理体系程序文件
- 新能源充电桩合作协议书(2篇)
评论
0/150
提交评论