欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    基于PHP的CMS网站系统开发及应用.doc

    • 资源ID:2388789       资源大小:457KB        全文页数:33页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于PHP的CMS网站系统开发及应用.doc

    摘 要网络的日益发展,使动态网站的开发和管理倍受人们的关注。在这里,介绍了基于PHP框架CodeIgniter的CMS网站系统的开发,剖析了MVC架构在使用过程中的优势,展现了整个后台的制作流程。该CMS以PHP做为主要语言,采用MySQL做为数据库支持。为了方便开发,选用了CI框架,该框架可以实现简单入门、快速开发等。利用以上技术实现了一个小型CMS系统,该系统后台的主要功能有:文章管理、分类管理、静态页面生成、用户管理及系统管理。关键字:PHP,CMS,CodeIgniter,网站开发Abstract The increasing development of the network, so that dynamic website development and management of much attention. Here, the introduced based on the CMS website PHP framework CodeIgniter system development, analysis of the MVC architecture in the use of the advantages of the process, displaying the entire background of the production process. The CMS with PHP as the main language, the use of MySQL as a database support. To facilitate the development, selection of the CI framework that can simple entry and rapid development. Using the above technology, a small CMS system, which has the main function of the background: The article management, classification management, static page generation, user management and system management.keywords:PHP,CMS,CodeIgniter,Web Development目 录摘 要2Abstract3前 言6第一章 技术概述71.1、PHP71.2、CodeIgniter71.3、MySQL71.4、JQuery7第二章 开发环境的安装与配置9第三章 系统设计103.1、系统概述103.2、功能模块分析103.3、编码规定10第四章 数据库设计12第五章 CodeIginter的安装及配置15第六章 后台开发166.1、搭建后台基本功能166.2、后台界面设计196.3、分类管理216.3.1、分类的添加、删除216.3.2、分类属性编辑(图6.3.2)246.4、文章管理266.4.1、文章添加、编辑266.4.1、文章的删除296.5、用户管理296.6、系统管理306.6.1、基本参数306.6.2、友情链接30结 论31参考文献32致谢33基于PHP的CMS网站系统开发及应用(免费提供下载)我的毕业设计,具体效果看大家点击广告支持一下,让咱这个破学生也赚几个小钱作者:zhjx922前 言动态网站系统是建立在网络基础设施之上的Web应用系统,它由前台和后台两部分构成,后台包括一组应用服务程序、Web服务器、应用服务器、数据库服务器等,前台是通过浏览器展示信息,实现与用户交互的一组网页。合理的体系结构和良好的程序设计是实现网站功能的基础,友好简洁的交互界面是发挥网站系统功能优势的条件。传统静态网站建设中存在的主要问题有:页面制作风格不统一,难以形成独立可复用的模块,降低了应用集成的灵活性和可扩展性;内容组织繁琐,管理效率低下,严重影响了更新效率,难以对信息进行统一管理;应用开发技术难度大,网站后台开发与前台页面的开发都需要开发人员编写代码,代码编写量大;网站开发周期长。为了解决传统静态网站建设中产生的系列问题,形成了以动态网页技术和数据库技术为基础的CMS(contentmanagementsystem,内容管理系统),它能针对政府和企业网站建设需求,专门面向网站内容编辑、发布与管理的应用系统。CMS 的优势有:能够比较灵活的定制栏目,对栏目进行分类、增删改和排序等管理;CMS 表现和内容分离,用户体验与内容质量的和谐统一,能够方便地对信息发布、录入、修改、删除;能够方便的管理网站的图片、文档、软件等一切资源,达到资源共享;简化了网站的内容供给和内容管理的责任委托,能够对信息的安全性和权限进行控制,保证信息访问的安全性和灵活性;能够有效统一网站风格;能在任意地点和时刻进行信息发布,把动态的内容利用静态的页面发布出去,提高网站的访问速度;CMS 集成性高,整体高效灵活,扩展性和易维护性好。第一章 技术概述本系统采用 CodeIgniter框架(以下简称CI) + MySQL数据库开发,CI使用了模型(Model)- 视图(View)- 控制器(Controllers)的方法(简称MVC),这样可以更好地使表现层和逻辑层分离。这对项目的模板设计者来说是非常有用的,它最小化了模板中的程序代码量。1.1、PHPPHP,是英文超级文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛的运用。PHP独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法它可以比 CGI 或者 Perl 更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。PHP具有非常强大的功能,所有的CGI的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。1.2、CodeIgniterCodeIgniter 是一套给 PHP 网站开发者使用的应用程序开发框架和工具包。她提供一套丰富的标准库以及简单的接口和逻辑结构,其目的是使开发人员更快速地进行项目开发。使用 CodeIgniter 可以减少代码的编写量,并将你的精力投入到项目的创造性开发上。1.3、MySQLMySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购.对于Mysql的前途,没有任何人抱乐观的态度.目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。1.4、JQueryjQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多javascript高手加入其team,包括来自德国的J&ouml;rn Zaefferer,罗马尼亚的Stefan Petre等等。jQuery是继prototype之后又一个优秀的Javascrpt框架。其宗旨是WRITE LESS,DO MORE,写更少的代码,做更多的事情。它是轻量级的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即可。第二章 开发环境的安装与配置在系统中按部就班的配置PHP的运行环境相对比较麻烦,所以我直接选择了WampServer。wampserver是在windows下将Apache+PHP+Mysql 集成环境,拥有简单的图形和菜单安装和配置环境。PHP扩展、Apache模块,开启/关闭鼠标点点就搞定,再也不用亲自去修改配置文件了,WAMP它会去做。再也不用到处询问PHP的安装问题了,wampserver一切都搞定了。我选择的是WampServer2.0i版本,里面包含的软件版本分别为:Apache2.2.11、MySQL5.1.36、PHP5.3.0开发工具我选择了EasyEclipse for PHP。相比Zend Studio,没有它那么“庞大”,但是功能缺一点都不少,对于我们一般的开发者来说足够了。第三章 系统设计3.1、系统概述CMS是Content Management System的缩写,意为"内容管理系统",它具有许多基于模板的优秀设计,可以加快网站开发的速度和减少开发的成本。CMS的功能并不只限于文本处理,它也可以处理图片、Flash动画、声像流、图像甚至电子邮件档案。3.2、功能模块分析内容模块因为做的是内容管理系统,所以这一块儿也是使用最频繁的一个模块了,我们的文章、图片、视频都是从这里添加,功能:文章添加、编辑、删除等分类模块设置网站的分类信息,方便用户查看各类信息,功能:分类添加、删除、分类属性等用户模块管理用户信息,查找用户的注册时间,注册IP等,功能:普通会员、管理员的添加、删除等系统模块设置网站基本参数、上传路径、水印文字、友情链接等3.3、编码规定考虑到编码不统一照成的各种错误,所以我选用UTF-8编码首先设置EasyEclipse for PHP的默认编码。1、 依次打开WindowsPreferences-General-Workspace,将里面的Text file encoding设置为UTF-82、 然后打开WindowsPreferences-General-Content Types,将Text下面的所有文件都设置成UTF-8这样,在开发过程中,就会减少各种因为编码不统一,照成的各种问题,网站具体功能模块如下图:第四章 数据库设计开发之前,先设计数据库,我们要实现的功能有:文章管理、分类管理、用户管理、网站系统信息和友情链接管理,首先建立数据库zhjx922,同样的编码设定为UTF-8,建表信息如下:文章表:字段名称数据类型字段大小是否主键说明aidint20是自动编号IDtitlechar160标题sourcechar160来源authorchar30作者keychar200关键字sort_idint8对应分类IDcontenttext内容countint20点击量updateint20更新时间(记录时间戳)分类表字段名称数据类型字段大小是否主键说明sidint10是自动编号IDfidint10父分类IDsort_namechar50分类名称sort_orderint8排序sort_datechar20添加时间sort_typeint2分类类型sort_contributetinyint2是否支持投稿sort_hiddentinyint2是否隐藏栏目sort_competenceint2浏览权限sort_tagchar50分类标签其它表单建表代码:/*评论表单*/CREATE TABLE dz_comments(id INT(20) NOT NULL AUTO_INCREMENT,comments_art_id INT(20) NOT NULL,comments_user CHAR(20) NOT NULL,comments_mail CHAR(30) NOT NULL,comments_site CHAR(30) NOT NULL,comments_comments TEXT NOT NULL,comments_date CHAR(20) NOT NULL,PRIMARY KEY (id)ENGINE=InnoDB DEFAULT CHARSET=UTF8 AUTO_INCREMENT=1;/*网站访问信息表单*/CREATE TABLE dz_count(id INT(20) NOT NULL AUTO_INCREMENT,count_date CHAR(20) NOT NULL,count_day INT(20) NOT NULL,PRIMARY KEY (id)ENGINE=InnoDB DEFAULT CHARSET=UTF8 AUTO_INCREMENT=1;/*链接表单*/CREATE TABLE dz_links(lid INT(10) NOT NULL AUTO_INCREMENT,links_name CHAR(50) NOT NULL,links_site CHAR(100) NOT NULL,links_date CHAR(20) NOT NULL,PRIMARY KEY (lid)DEFAULT CHARSET=UTF8 AUTO_INCREMENT=1;/*用户表单*/CREATE TABLE dz_member(mid INT(5) NOT NULL AUTO_INCREMENT,username CHAR(20) NOT NULL,password CHAR(50) NOT NULL,cercode CHAR(50) NOT NULL,email CHAR(32),regip CHAR(15),regdate INT(10),lastloginip INT(10),lastlogintime INT(10),group_id INT(2),PRIMARY KEY (mid)DEFAULT CHARSET=UTF8 AUTO_INCREMENT=1;21232f297a57a5a743894a0e4a801fc3/*网站参数表单*/CREATE TABLE dz_sys(sys_name CHAR(50) NOT NULL,sys_value CHAR(200),sys_explain CHAR(50),PRIMARY KEY (sys_name)DEFAULT CHARSET=UTF8;第五章 CodeIginter的安装及配置我的网站设定在E:wampwwwzhjx922目录下首先下载好CI 1.7.2的压缩包,只需把里面system文件夹和index.php文件解压到根目录下简单配置一下,打开 app/config/config.php,$config'base_url'= "http:/localhost/zhjx922/"$config'subclass_prefix' = 'DZ_'然后打开app/config/database.php设置数据库参数$db'default''hostname' = "localhost"$db'default''username' = "root"$db'default''password' = ""$db'default''database' = "zhjx922"$db'default''dbdriver' = "mysql"$db'default''dbprefix' = "dz_"添加HMVC支持CI是MVC架构,为了开发方便,在网上找个一个HMVC模块modular_extensions_5231,将里面的3个文件(Controller.php、Modules.php、MY_Router.php)解压以后放到app/library里面。App下新建modules目录。里面就可以放不同的模块了。如图:第六章 后台开发6.1、搭建后台基本功能启动WampServer,然后启动EasyEclipse for PHP为方便后台的管理,后台所有的程序均继承app/libraries下DZcms类,该类主要是判断管理员是否登录,以保证程序后台的安全代码如下:/DZcms类继承Controllerclass DZcms extends Controller function DZcms()/构造函数parent:Controller();$this->is_login();/判断用户是否登录/操作提示function msg($msg,$url)$data'msg' = $msg;$data'url' = $url;$this->load->view('msg' ,$data);/*判断用户是否登录的函数*这里调用了CI自带的两个方法fetch_class和fech_method来判 *断当前所在的类和方法*/ function is_login()if($this->session->userdata('login_name') = TRUE)if($this->router->fetch_class() = 'member' && $this->router->fetch_method() = 'login') redirect('admin'); elseif($this->router->fetch_method() != 'login') redirect('member/login'); 为了方便开发,于是扩展了一下Loader核心类,在app/libraries下新建文件DZ_Loader.php,关键代码如下:class DZ_Loader extends Loader public function Loader() parent:Loader();public function view($view, $vars = array(), $return = FALSE) $vars'adminurl' = $this->config->item('base_url').APPPATH.'admin/'/后台文件存放位置$vars'baseurl' = $this->config->item('base_url').'web/'return Loader:view($view, $vars, $return);/前台文件存放位置CI里面有一个非常好,非常方便的功能-模型(Model),只要按照CI的要求写出我们自己的模型,可以方便的调用,我把数据库中各个表的操作放到了app/models中,根据表的名字,建立了article_model.php、links_model.php、member_model.php、sort_model.php、sys_model.php,以article_model.php为例:/*首先继承Model*/class Article_model extends Modelfunction Article_model()parent:Model();$this->dz_db = 'article'/表的名称/*获取文章总数*/function art_count()$this->db->join('sort', 'sort.sid = '.$this->dz_db.'.sort_id');$this->db->order_by('aid', 'desc');$this->db->from($this->dz_db);return $this->db->count_all_results();/运用CI的Active Record 类,有效减少程序代码,增加代码质量function get_art_sort($sid, $limit = 0, $offset = 1)$this->db->join('sort', 'sort.sid = '.$this->dz_db.'.sort_id');$this->db->where('sort_id', $sid);$this->db->limit($offset, $limit);$this->db->order_by('update', 'desc');$query = $this->db->get($this->dz_db);return $query->result_array();6.2、后台界面设计我把后台所需的CSS,JS及IMAGES统一放在app/admin目录下面接着就是后台的入口,app/modules下的admin控制器代码如下:/后台所有类均继承DZcmsclass Admin extends DZcmsfunction Admin()parent:DZcms();function index()$this->load->view('admin');/加载后台视图后台首页面整个后台使用DIV+CSS布局,及iframe框架,考虑到到适应各种浏览器,在这里运用了相对布局及相关jQuery插件,布局关键代码于admin.php中,CSS样式则写在admin.css文件中,而一些常用JS写在admin.js中。后台的样式布置好了,然后就进入了我们的功能开发阶段。6.3、分类管理上图:分类界面(6.3.1)上图:分类属性(6.3.2)6.3.1、分类的添加、删除该部分运用了AJAX的无刷新技术,快速、明了的添加删除分类(图6.3.1)关键JQUERY代码如下(实现了无刷新添加分类的功能):/* 添加顶级分类 */$(".add_top").click(function()$(this).parent().parent().before('<tr><td><input type="text" name="order" class="order" value="0" /></td><td><input type="text" name="name" value="顶级分类" class="text" style="margin: 3px 0px;" /></td><td></td></tr>'););/* 添加自分类 */$(".add_son").click(function()var order = 'new' + $(this).parent().prev("td").children("input").attr("name") + ''var name = 'new' + $(this).prev("input").attr("name") + ''$(this).parent().parent().after('<tr><td><input type="text" name="'+order+'" class="order" value="0" /></td><td><div class="td_bg"></div><input type="text" name="'+name+'" value="子分类" class="text" style="margin: 3px 0px;" /></td><td></td></tr>'););$(".add_son1").click(function()var order = $(this).parent().prev("td").children("input").attr("name") + ''var name = $(this).prev("input").attr("name") + ''var cc = $(this).prevAll("span").html() + '<div class="span"></div>'$(this).parent().parent().after('<tr><td><input type="text" name="'+order+'" class="order" value="0" /></td><td><span>'+cc+'</span><div class="td_bg"></div><input type="text" name="'+name+'" value="子分类" class="text" style="float:left;margin: 3px 0px;" /></td><td></td></tr>'););动态生成HTML之后,我们需要将数据提交到数据库中,数据分两类,一类是原有的(数据库读出来的),一类是新加的,根据这种情况分成两类数据提交,因为原有的数据Input标签的name是从数据库读出来的(赋予其name为name*),而新的却不是这样(赋予其name为newname*),根据这个的不同,来识别数据是新的还是原有的。关键代码如下:/* 获取新添加的分类信息 */$neworder = $this->input->post('neworder');$newname = $this->input->post('newname');/* 更新原有的信息 */$order = $this->input->post('order');$name = $this->input->post('name');然后根据提交的值做出相应的处理,提交或更新到数据库分类信息的删除过程:先删除当前分类,然后删除分类下的文章(同时删除文章下的附件),之后删除分类的子类,这样循环下去就可以删除干净了,关键代码:function del_sort()$sid = $this->uri->segment(3,0);if($sid != '0')if($this->msort->del_sort($sid) = TRUE)/获取分类下属文章$sart = $this->marticle->get_sort_article($sid);foreach($sart as $value)$this->delupload($value'aid');/单独定义一个删除附件的函数,方便调用if($this->marticle->del_sort_article($sid) = TRUE)/判断是否删除成功function delupload($aid)/附件删除函数/删除文章下的附件(图片,动画)$paths = $this->msys->get_one_sys('site_uploads');/上传路径$upload_path = $paths'sys_value'$imgresult = $this->mimages->get_images($aid);/获取要删除的对象if($imgresult = TRUE)foreach($imgresult as $value)$file = "./".$upload_path."/".$value'name'/删除文件位置unlink($file);$this->mimages->del_images($aid);/删除数据库中的信息6.3.2、分类属性编辑(图6.3.2)可以设置分类是否支持投稿、是否隐藏栏目、分类类型及浏览权限等,关键代码:function edit_sort()$sid = $this->uri->segment(3,0);/分类ID$newsid = $this->input->post('sid');if($sid != 0)$query = $this->msort->get_one_sort($sid);/获取分类信息$data'onesort' = $query'0'if(isset($_POST'submit')/添加、更新分类信息$array = array('sort_type' => $this->input->post('type'),'sort_contribute' => $this->input->post('contribute'),'sort_hidden' => $this->input->post('hidden'),'sort_competence' => $this->input->post('competence'),'sort_tag' => $this->input->post('tag');$query = $this->msort->up_sort($array, $newsid);else$this->load->view("sort_edit", $data);6.4、文章管理图:文章列表(6.4.1)图:文章添加(6.4.2)6.4.1、文章添加、编辑在文章添加这块儿,文章的添加和编辑属于同一个模板,为方便判断用户当前属于那种模式,在HTML中,我添加了一个隐藏域<input type="hidden" name="edit" value="<?php echo $onearticle'aid'?>" />,如果有值的话,属于编辑状态,反之为添加状态,关键代码如下:function art_add()$aid = $this->uri->segment(3,0);$data'sortlist' = $this->msort->get_all();if($aid != 0)/如果获取到aid,说明属于编辑模式$query = $this->marticle->get_one($aid);/读取当前要编辑的文章$data'onearticle' = $query'0'else/防止错误$data'onearticle' = array('aid'=>'','title'=>'','sort_id'=>'','source'=> '','author'=>'','key'=>'','content'=>'');if(isset($_POST'submit')if($_POST'edit' != '')/更新模式$array = array('title'=>$this->input->post('title'),'sort_id'=>$this->input->post('sort_id'),'source'=> $this->input->post('source'),'author'=>$this->input->post('author'),'key'=>$this->input->post('key'),'content'=>$this->input->post('content'),'update'=>time();$query = $this->marticle->up_article($_POST'edit', $array);$imagesname = $_POST'imagesname'/获取媒体信息if(isset($imagesname)/媒体信息加入数据库$newimages = explode(",",$imagesname);$n = count($newimages);for($i=0;$i<$n;$i+)$imgar

    注意事项

    本文(基于PHP的CMS网站系统开发及应用.doc)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开