php博客网站thinkphp论文_第1页
php博客网站thinkphp论文_第2页
php博客网站thinkphp论文_第3页
php博客网站thinkphp论文_第4页
php博客网站thinkphp论文_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计说明书基于web的微博系统绪论1.1课题背景进入第二十一世纪的信息时代后,计算机与人之间的距离逐步缩小。现如今,计算机网络已越来越多的占领了我们的生活。因为计算机网络的高速发展,人与人之间的交流方式也变得富有多样性。人与人在计算机上的交流都是通过计算机网络演变而来的。人类因为它们的出现让交流变得更加的方便快捷。博客由此开始迅速崛起。互联网时代的到来,许多人开始纷纷加入博客系统的开发研究。WordPress,Pivotx,PJBlog,Z-Blog等系统都被称为主流博客开源系统。博客发展技术的尖端被Sablog-X技术拿下。博客系统,以提高设计的各种开发语言和技术平台,建立一个程序。博客系统已成为网络新兴文化体系的潮流。1.2课题研究现状博客,是Weblog的中文名称,后来为了方便使用,简称blog,又被称为社交日志等,是一种由个人管理、一段时间内对发布内容增删改查的网站。博客是以网络为载体,简单快捷、易于发布的个人体验,及时有效地与他人沟通,然后在一个集成平台上设置多种个性化展示。撰写这些博客的人就叫做博客达人。博客的市场前景非常好,一开始就发展为全球第四大网络交流方式,市场需求超过了BBS、ICQ和电子邮件,成为了网络时代的个人"心情日志”,是一种以超级链接为根本的网络日记,增添了生活方式和工作方式的创新,是着一种新的交流方式。此外,因为博客的沟通方式更为方便快捷,所以它逐渐被企业内部网络中所应用。据相关调查数据显示,截止到2006年11月3日,全球中文博客站点的数目已高达到5000多万,blog的用户率更是接近了两千万。据可靠数据显示,2006年,由于大陆博客服务商的大幅度增长,大型网络如搜狐、百度等多家公司接连推出了相应的服务,日趋激烈的竞争也通过这些博客服务商因此拉开了序幕。博客也开始成为互联网的基本应用。1.3本文研究内容本篇论文主要分为七个章节,每一个章节都讲述了如何去设计一个好的微博系统。第一是前言,主要概括了了课题的研究意义、课题的研究方法、技术路线以及本文研究的主要内容等。第二是相关技术介绍,主要讲述了PHP技术、MySQL数据库、B/S和C/S框架等。第三是对系统分析,主要介绍了对制作环境及框架的分析第四是系统设计,主要介绍了如何去设计以及制作框架。第五是系统详细设计,主要介绍了系统详细设计过程。第六是系统调试与测试,通过演示该项目来进行相应的测试。第七是项目总结,针对本次项目中所遇到的问题以及所学到的知识进行充分的理解。

2相关技术简介2.1PHP技术介绍超级文本预处理语言,简称PHP,是一门后台编程语言。PHP是一种与HTML相互交汇的语言,一定程度上与微软的ASP比较相似,都是一种在web端执行的语言,和C语言的形式比较相似,是许多人编程的首选语言。PHP特有的的语法中加入了C语言、Java、Perl以及PHP自主创新的语法。PHP语言的功能非常强大,在动态页面和静态页面中都有着不可缺少的PHP语言,在许多操作系统和数据库中都可以使用。2.2PHP技术特点a)、PHP语言在Linux/Unix的环境下使用,性能方面很高,使用率也比较广泛,不仅如此,他还可以在很多免费的平台上使用,是一种开源语言。b)、PHP的语法很简单,如果你学习过C语言或者是Perl,那将很容易操作PHP,和ASP有些类似。可以在Dreamweaver和eclipse上使用,方便,高效,快捷。c)、如今比较热门的技术都支持,比如HTML、Ajax、XML等等,完全应用。d)、有很多成熟的框架,足够满足你的应用需求。e)、有成熟的社区来支持PHP的开发。f)、今天,许多大型的互联网应用都是使用PHP语言来完成的,如淘宝、sina、JD、天猫等大型互联网应用,大多数互联网应用都会选用PHP来作为他们的开发语言。g)、有很多开源的框架或开源的系统可以使用,比如比较知名的开源框架有ZendFramework、CakePHP、CodeIgniter、symfony等。2.3Apache简介现如今,全球范围内使用最多的web软件就是Apache。无论是Linux、Windows还是iOS它都可以在这些平台上使用,也因其安全性之高以及跨领域性之大,使其成为了近年来最热门的Web服务器端软件。Apache的特性:1)几乎可以运行在所有的计算机平台上.2)支持最新的HTTP/1.1协议3)支持通用网关接口(CGI)4)支持虚拟主机.5)支持HTTP认证.6)集成PERL.7)集成的代理服务器8)支持服务器端包含命令(SSI).9)支持安全SOCKET层(SSL).10)具有用户会话过程的跟踪能力.11)支持FASTCGI12)支持JAVASERVLETS.2.4PHPMyAdmin简介phpMyAdmin(简称PMA)是一种开源工具,基于Web的基础,经由PHP语言的编写,利用网页方式管理MySQL数据库,在虚拟主机的MySQL的PHP架构中,让管理人员通过使用Web界面来达到对MySQL数据库的管理。在网页中方便的输入sql语句通过PMA来实现的,特别强调的一点是是大量数据的导入和输出变得更加快捷。PMA相较其他PHP页面有些许不同,虽然同样在web服务器上运行,但其方便的建立、修改和删除数据库和表格,可远程管理MySQL数据库,方便的建立、修改和删除数据库和表格,更好的方式通过这个网络接口可以简单的方法来输入复杂的SQL语法,特别是处理大量的数据导入和导出更方便。PMA是一种Web服务器上其他PHP方案,但它可以在生成HTML页面的通同时远程管理MySQL数据库,对数据库表中的增删改查很重要的作用。PMA能够使用由PHP来创建一个共同的语法,以加大网页中所需数据库SQL语法的正确性。2.5B/S简介Browser/Server简称为B/S架构,就是所谓的浏览器/服务器结构,简单来说可总结为安设维护一个Server(服务器),在执行软件方面则使用客户端来运行浏览器。B/S结构让人们使用最多的原因就是它可以不专门安装软件直接使用。一台可接入网络的计算机再配有administrator所分配的admin和password,再加上其良好的系统扩展性,使许多用户可以轻松入手。目前最热门的发展趋势则是来自于Browser/Server结构的程序架构,诸如微软系列的新版服务器软件Exchange等,其系统的完善性可全面支持网络构件的搭建。SunMicrosystems和万国商业机器公司所推出的JavaBean等构件技术,使Browser/Server结构变得越发成熟。2.6Mysql数据库MySQL的创始人是想通过连接到表格中来进行对数据的处理。在任何情况下,在几个测试,开发人员得出的结论是,语言不是快速和灵活的他们需要。MYSQL的特点特性:(1)利用编译语言,对其进行测试,使其源代码的可移植性得到了加强。(2)支持Windows、iOS、Linux等多种操作系统。(3)它为PHP、C语言、Java提供了数据存储。(4)支持多线程,充分利用CPU资源。(5)通过MySQL可以有效地查找到你想要的数据。(7)对大型数据库上千万条的记录起到更好的处理作用。 (8)对数据的管理、储存起到了至关重要的作用。3系统分析3.1系统设计目标此次毕业设计不仅开发了个人博客系统,而且更进一步做到形象的宣传,实现了对个人博客系统所需的各个步骤功能的实现,用户可以在线注册和登录,浏览博客上面的文章和图片给博主留言等。用户可以在博客上面,体验到便捷的操作过程,对于后台管理,更是简洁明了。3.2系统可行性分析a).技术可行性分析本系统是由PHP语言来编写,MySQL数据库来进行数据储存,在Apache的服务端来啊完成的,系统的静态页面是用HTML语言编写的,与PHP语言相结合来管理用户界面,使得信息完善;后台使用MySQL数据库开发管理数据库,一些关键应用的业务处理机制,具有很强的错误处理能力。该系统的开发环境,现在是开放源码的Apache服务器特别受欢迎,使用方便,运行稳定,安全可靠。该技术在电商平台系统的发展中得到了广泛应用。如易淘宝,京东,雅虎等大型网站。综上所述,该系统在技术上是可行的。b).操作可行性分析本系统采用Browser/Server结构,对于用户来说网站信息化管理,操作简单,容易理解并不需要高深的计算机专业知识,管理员只要可以了解网络的使用,就可以使用和维护网站。c).经济可行性分析由于本系统是一个模拟个人博客系统,整个网站是不是太大,所以开发成本不会太高。整个开发过程都是自己独立完成,一台笔记本外加一些软件,例如Apache、Dreamweaver等。在使用时,用户只需连上无线,打开index界面,进行操作就可以了。对于电脑硬件的要求不是很高,该软件有没有特殊需求,方便地访问和使用。因此,从经济可行性分析的角度,系统地反映了经济利益和强大的功能。3.3系统功能需求概述前台功能:a)会员登录,方便用户登录了解相关信息。b)会员注册,支持用户注册账户登录系统查看相关信息。c)文章,方便用户通过博客进行文章查看。d)修改密码:如果登录人员是用户的话可以进行对自己个人密码的修改。e)留言:登录后可以进行留言操作。后台管理功能:a)会员管理:对会员信息进行查询,删除,修改等操作。b)文章管理:管理员的内容管理,包括查询,删除,修改等功能。c)留言管理:管理员对会员给留言内容进行管理。3.4系统设计规则网站的运营离不开设计规则的建立。它的主要设计规则有:简单性:在实现系统各项功能的同时,易于理解系统的运行非常重要实用性:该系统前台单元接受来自互联网用户的请求,用户可以方便的浏览文章信息。后台系统接受来自系统管理员的请求,管理员可以对文章内容、会员等信息进行增、删、改、查等操作,具有良好的实用性。3.5运行环境本系统是一个web版的应用程序,需要在服务器上部署中间件Apache、MySQL数据库,其他的客户端通过网络进行访问该服务器即可。(1)开发硬件平台:CPU:酷睿双核3.2GHZ内存:4G以上硬盘:320GB(2)服务器端硬件平台:Web服务器参考配置:英特尔至强E553080w2.40ghz/5.8gt/8mb缓存四核心。数据库服务器参考配置:英特尔至强E553080w2.40ghz/5.8gt/8mb缓存四核心。(3)开发软件平台:操作系统:WindowXP或Win7均可数据库:Mysql数据库

4系统设计4.1架构设计该微博系统采用基于Browser/Server的结构来开发系统。目前,在互联网的应用体系结构中,事物处理被划分为3层,即WebBrowser—InternetServer—DatabaseServer。在这种体系结构中,通过简单的WebBrowser来实现业务的表达,通过把WebBrowser表单提交给用户,把信息传递给InternetServer,InternetServer根据用户的请求,分析出要求数据库服务器进行的查询,交给数据库服务器去执行,DatabaseServer把查询的结果反馈给InternetServer,在Internet服务器上按标准HTML语言反馈到web浏览器。三层应用模型同传统的C/S(Client/Server)模型相比,提高了系统的可扩展性、安全性和可重用性。Browser/Server技术对服务器的要求不高,一般只需安装、配备在服务器上。减少对客户的工作,降低开发和管理成本。而C/S技术的应用则需要在所有的客户端上实现。Browser/Server技术的工作主要体现在服务器端,客户端一般用的几率很小。而C/S结构中客户短和服务器端的维护工作量都较大。WebBrowser技术简明易用,一旦用户掌握了WebBrowser的用法,也就掌握了使用系统上各种信息资源的钥匙。4.2功能模块设计该系统分为前台和后台两个模块。前台单元接受来自用户的请求,用户主要实现了登录注册、文章鉴赏、美图鉴赏、留言等功能。后台系统接收来自系统管理员的请求,管理员主要负责的功能对用户提交的信息进行管理。系统功能结构图如下图4.2所示:图4.2系统功能结构图4.3技术架构系统建设关键在于所使用的结构,基于Web系统的学习网站,传统的C/S架构已经无法满足大量的用户访问和操作,基于B/S浏览器架构的的当前网络系统应用的主流,这将是一个很大的数据处理工作,以在服务器端,客户端只有通过普通IE浏览器可以访问系统,方便,有利于更新和维护系统的,Java语言的独特之处更适应这方面的工作。在Browser/Server架构,用户通过发送一些请求给服务器。B/S结构减少了客户端的工作。服务器将在数据库访问完成更多的工作和应用将在服务器上完成。浏览器发送一个请求向数据请求,处理结果和动态页面,其余的是由服务器的Web完成。实际上,Browser/Server架构是从客户端的任务的事务处理逻辑模块中的C/S的结构,在Web服务器以分离层来加载其任务,以使客户的压力,以降低负载分布到Web服务器。这种三层体系结构如下图4.3所示,系统。Browse浏览器Browse浏览器Web服务器数据库图4.3B/S三层架构示意图4.4数据库结构设计4.4.1数据库设计规范在概念设计中,通常用四种方法:自上而下:第一步我们先来阐述什么是全局概念的结构框架,第二步我们来进一步分析;自下而上:第一步我们要知道你所了解的应用程序的功能及结构,然后进行汇总研究;逐渐扩充:第一步对核心概念结构的了解,第二步掌握结构的整体概念;混合策略:自上而下和自下而上的结合,设计出具有自上而下的战略全局观念。该框架的结构,它集成了各种当地的概念结构设计的自底向上的战略骨架。在物理结构设计阶段首先分两步走:数据库的物理结构主要是指对数据的收集及储存。物理结构评价的时间和空间效率。选择合适的关系模式访问方法,常用的有:访问索引法、集群访问法、哈希存取法等。4.4.2数据库概念模型关系型数据库是目前应用最广泛的数据库。既然是面向对象系统设计,数据库设计当然也要是面向对象的。现在考虑如何在类上进行持久操作,也就是如何将对象类映射到关系数据库的2D表。目前可以采用数据库建模工具来实现,像PowerDesigner、Rose等。通过数据库的概念设计的E-R图来展示项目的逻辑思维如下图4.4所示:图4.4整体属性E-R图图表说明:矩形模版代表的是实体。后续部分用图形来表示实体之间的关系,图形与实体相连,用来表示线段来表示他们相连,在线段边上进行类型标注。实体的属性根据模版可用椭圆表示,后来根据情况在图中被省略。会员:ID、用户昵称、账户、密码。文章:ID、标题、内容、图片、时间等。留言:ID、内容、发布人、时间等如下图4.5和4.6所示,具体的功能要求会用ER图来表示。图4.5会员实体属性E-R分图图4.6评论信息实体属性E-R分图4.4.3数据表字段设计由于论文篇幅有限这里只列举部分表的设计。(1)用户个人信息表,用于存储个人信息,编号是唯一的主键。表4-1会员信息表中文字段名数据类型长度是否主键编号Int11是用户昵称Varchar255账户Varchar255密码Varchar255(2)留言信息表。表4-2留言信息表中文字段名数据类型长度是否主键编号Int11是内容Varchar255发布人Varchar255时间Varchar2554.5系统架构类图将包图扩展为类图,它是体系结构的静态结构图,表示类之间的静态关系。个人博客设计与实现类图如下图4.7所示。图4.7网站设计与实现类图4.6系统交互图系统架构类的工作流程:1.用户接口对象正在接收用户的输入请求后发送到业务代理。2.在接收到请求后,业务代理被发送到权限来验证请求。3.权威的机构来验证结果返回给代理商。4.基于验证结果的下列验证的代理对象:不一致请求返回的提示信息;对于右侧的请求,该请求将被转发到的业务对象。5、业务对象进行业务处理。对于业务流程中数据持久化的操作,通过访问数据库访问对象,将异常过程中的任何异常给异常处理程序。最后将处理结果信息返回给业务代理对象。6、后台将信息处理之后再返回界面。系统架构类的交互图如图4.8所示:图4.7网站设计与实现类图5详细设计5.1系统配置操作数据库步骤:a)创建数据库;b)选择、打开数据库;c)准备一个SQL语句;d)执行SQL语言;e)关闭数据库;实现代码如下:protectedfunctionparseDsn($config){$dsn='mysql:dbname='.$config['database'].';host='.$config['hostname'];if(!empty($config['hostport'])){$dsn.=';port='.$config['hostport'];}elseif(!empty($config['socket'])){$dsn.=';unix_socket='.$config['socket'];}if(!empty($config['charset'])){//为兼容各版本PHP,用两种方式设置编码$this->options[\PDO::MYSQL_ATTR_INIT_COMMAND]='SETNAMES'.$config['charset'];$dsn.=';charset='.$config['charset'];}return$dsn;}/***取得数据表的字段信息*@accesspublic*/publicfunctiongetFields($tableName){$this->initConnect(true);list($tableName)=explode('',$tableName);if(strpos($tableName,'.')){ list($dbName,$tableName)=explode('.',$tableName); $sql='SHOWCOLUMNSFROM`'.$dbName.'`.`'.$tableName.'`';}else{ $sql='SHOWCOLUMNSFROM`'.$tableName.'`';}$result=$this->query($sql);$info=array();if($result){foreach($resultas$key=>$val){ if(\PDO::CASE_LOWER!=$this->_linkID->getAttribute(\PDO::ATTR_CASE)){ $val=array_change_key_case($val,CASE_LOWER); }$info[$val['field']]=array('name'=>$val['field'],'type'=>$val['type'],'notnull'=>(bool)($val['null']===''),//notnullisempty,nullisyes'default'=>$val['default'],'primary'=>(strtolower($val['key'])=='pri'),'autoinc'=>(strtolower($val['extra'])=='auto_increment'),);}}return$info;}/***取得数据库的表信息*@accesspublic*/publicfunctiongetTables($dbName=''){$sql=!empty($dbName)?'SHOWTABLESFROM'.$dbName:'SHOWTABLES';$result=$this->query($sql);$info=array();foreach($resultas$key=>$val){$info[$key]=current($val);}return$info;}/***字段和表名处理*@accessprotected*@paramstring$key*@returnstring*/protectedfunctionparseKey(&$key){$key=trim($key);if(!is_numeric($key)&&!preg_match('/[,\'\"\*\(\)`.\s]/',$key)){$key='`'.$key.'`';}return$key;}/***批量插入记录*@accesspublic*@parammixed$dataSet数据集*@paramarray$options参数表达式*@paramboolean$replace是否replace*@returnfalse|integer*/publicfunctioninsertAll($dataSet,$options=array(),$replace=false){$values=array();$this->model=$options['model'];if(!is_array($dataSet[0]))returnfalse;$this->parseBind(!empty($options['bind'])?$options['bind']:array());$fields=array_map(array($this,'parseKey'),array_keys($dataSet[0]));foreach($dataSetas$data){$value=array();foreach($dataas$key=>$val){if(is_array($val)&&'exp'==$val[0]){$value[]=$val[1];}elseif(is_null($val)){$value[]='NULL';}elseif(is_scalar($val)){if(0===strpos($val,':')&&in_array($val,array_keys($this->bind))){$value[]=$this->parseValue($val);}else{$name=count($this->bind);$value[]=':'.$name;$this->bindParam($name,$val);}}}$values[]='('.implode(',',$value).')';}//兼容数字传入方式$replace=(is_numeric($replace)&&$replace>0)?true:$replace;$sql=(true===$replace?'REPLACE':'INSERT').'INTO'.$this->parseTable($options['table']).'('.implode(',',$fields).')VALUES'.implode(',',$values).$this->parseDuplicate($replace);$sql.=$this->parseComment(!empty($options['comment'])?$options['comment']:'');return$this->execute($sql,!empty($options['fetch_sql'])?true:false);}/***ONDUPLICATEKEYUPDATE分析*@accessprotected*@parammixed$duplicate*@returnstring*/protectedfunctionparseDuplicate($duplicate){//布尔值或空则返回空字符串if(is_bool($duplicate)||empty($duplicate))return'';if(is_string($duplicate)){ //field1,field2转数组 $duplicate=explode(',',$duplicate);}elseif(is_object($duplicate)){ //对象转数组 $duplicate=get_class_vars($duplicate);}$updates=array();foreach((array)$duplicateas$key=>$val){$updates[]=$this->parseKey($val)."=VALUES(".$this->parseKey($val).")";}else{$val=array('value',$val);if(!isset($val[1]))continue;switch($val[0]){case'exp'://表达式$updates[]=$this->parseKey($key)."=($val[1])";break;case'value'://值default:$name=count($this->bind);$updates[]=$this->parseKey($key)."=:".$name;$this->bindParam($name,$val[1]);break;}}}if(empty($updates))return'';return"ONDUPLICATEKEYUPDATE".join(',',$updates);} /***执行存储过程查询返回多个数据集*@accesspublic*@paramstring$strsql指令*@paramboolean$fetchSql不执行只是获取SQL*@returnmixed*/publicfunctionprocedure($str,$fetchSql=false){$this->initConnect(false);$this->_linkID->setAttribute(\PDO::ATTR_ERRMODE,\PDO::ERRMODE_WARNING);if(!$this->_linkID)returnfalse;$this->queryStr=$str;if($fetchSql){return$this->queryStr;}//释放前次的查询结果if(!empty($this->PDOStatement))$this->free();$this->queryTimes++;N('db_query',1);//兼容代码//调试开始$this->debug(true);$this->PDOStatement=$this->_linkID->prepare($str);if(false===$this->PDOStatement){$this->error();returnfalse;}try{$result=$this->PDOStatement->execute();//调试结束$this->debug(false);do{$result=$this->PDOStatement->fetchAll(\PDO::FETCH_ASSOC);if($result){$resultArr[]=$result;}}while($this->PDOStatement->nextRowset());$this->_linkID->setAttribute(\PDO::ATTR_ERRMODE,$this->options[\PDO::ATTR_ERRMODE]);return$resultArr;}catch(\PDOException$e){$this->error();$this->_linkID->setAttribute(\PDO::ATTR_ERRMODE,$this->options[\PDO::ATTR_ERRMODE]);returnfalse;}}5.2功能模块实现5.2.1前台如下图5.1所示的界面是个人博客系统的前台首页。功能包括登录注册、文章鉴赏、美图鉴赏、留言等。用户登录后的界面被划分为两部分,其中一部分是指示菜单,另一部分的内容区域,内容区域又划分为左右两块。图5.1个人博客系统前台首页(1)会员登录:用户必须在登录之后才能进行问卷调查。如果用户是会员,只需登录即可。会员登录界面如下:登录功能实现流程:用户输入用户名、密码后点击登录按钮。表单接收文本框信息。声明变量存储文本框信息。使用存储文本框信息的变量进入数据库验证。如验证错误,则弹出“请输入正确的账号密码!”对话框,并返回登录界面。如成功验证,则弹出“您已成功登录!”对话框,并跳转主页界面。登录代码如下://登录检查 staticpublicfunctioncheckLogin(){//检查当前操作是否需要认证if(self::checkAccess()){//检查认证识别号if(!$_SESSION[C('USER_AUTH_KEY')]){if(C('GUEST_AUTH_ON')){//开启游客授权访问if(!isset($_SESSION['_ACCESS_LIST']))//保存游客权限self::saveAccessList(C('GUEST_AUTH_ID'));}else{//禁止游客访问跳转到认证网关redirect(PHP_FILE.C('USER_AUTH_GATEWAY'));}}}returntrue; }(2)会员注册按照操作提示进入界面进行用户注册图5.2会员注册界面(3)文章鉴赏点击按钮,进入文章鉴赏界面进行浏览。图5.3文章鉴赏界面图5.4修改密码图5.5留言5.2.2后台进入后台用户界面通过网页操作,对收集的信息进行处理,管理员会操作相应的功能来实现对后台的管理。图5.6网站后台管理界面单击【留言管理】链接,进入留言管理界面。图5.7留言管理界面实现代码://留言-列表publicfunctionownerList(){$info=M('msg')->select();$this->assign('info',$info);$this->display();}//留言-删除publicfunctionownerDel(){$rst=M('msg')->where('id='.I('get.id'))->delete();if($rst){$this->success('删除成功!',U('ownerList'));}else{$this->error('删除失败,请重新删除!!');}}图5.8文章列表界面图5.9添加文章界面图5.9会员管理界面实现代码如下://会员列表publicfunctionuserList(){$info=M('user')->select();$this->assign('info',$info);$this->display();}publicfunctionuserDel(){$info=M('user')->where(array('id'=>I('get.id')))->delete();if($info){$this->success('删除成功!',U('userList'));}else{$this->error('删除失败');}}publicfunctionuserEdite(){if(IS_POST){$info=M('user')->save(I('post.'));if($info){$this->success('修改成功!',U('userList'));}else{$this->error('修改失败');}}else{$info=M('user')->where('id='.I('get.id'))->find();$this->assign('info',$info);$this->display();}}publicfunctionuserAdd(){if(IS_POST){$data=I('post.');$data['ctime']=date('Y-m-dH:i:s');$info=M('user')->add($data);if($info){$this->TRUE('添加用户成功!',U('userList'));}else{$this->error('添加用户失败');}}else{$this->display();}}该系统采用智能结构模式,具备通用型,不同类型的个人博客它都可以兼容。

6系统调试与测试6.1程序调试在设计系统的过程中,存在一些错误是必然的,代码输入错误,标点符号未能加上,这些都是不可避免的。所以我们在写完代码之后要运行测试,找出其中的错误加以改正。也可能会有逻辑错误以及计算机不兼容的因素。这种类型的错误隐蔽性强,有时会出现,有时不出现,因此,这种调查的动态误差既费时又费力,需要改善。6.2程序的测试6.2.1测试的目的测试就是有针对的运行处理,找出问题的所在,并加以改正。1.软件测试是为了发现错误而执行程序的过程;2.系统的完善离开不测试;首先,测试并不只是要找出错误的。通过的错误的原因和误差的分布的分析,它可以帮助项目经理来找出当前软件过程的缺陷,从而提高软件的过程。其次,没有发现该测试是有价值的,并且完整的测试是评价试验的质量的方法。6.2.2测试的步骤类似于开发过程中,测试程序必须进行一步一步,每步是逻辑上的继续前一步骤的。大型软件系统由几个子系统,其中每一个是由几个模块。(1)在此测试步骤中,测试模块常常发现是编码和详细的错误。(2)在本次测试过程中,发现的问题都已解决,代码可以运行。(3)在此次测试验收中,我们也要进行归类总结,并改正。6.2.3测试的主要内容(1)单元测试单元测试对某一部分来进行测试,并且记录该模块特点、内容。(2)综合测试集成测试就是要在组装模块中找到你所需要找的问题来进行求证。例如,一个模块,其他模块都可能产生不利影响,由于疏忽,处理函数的组合可能不会产生期望的功能;如果因为一个小的问题而不去解决很有可能影响到整个结构,从而导致系统错误。(3)证实测试测试完之后,将测试结果整理后,所有模块已经被设计为集成到一个完整的体系中,消除了接口的问题,然后为了确认测试任务的有效性,应经一步验证该软件。测试所要做的任务就是要使软件的功能和性能达到用户所期望的要求。(4)系统测试软件开发完成后,对系统的最后部分等部分进行了操作、系统测试。测试案例的内容:周期:测试时间域。层次:测试的层面。类型:测试的分类。系统:测试何系统。分系统:测试何分系统。模块:测试何模块。平台:测试的环境。描述:对测试问题说明与叙述。目的:测试的目标与期望。测试案例与脚本:1)主要包括以下内容:检查集成测试策略制定测试数据目的和性能目标找出关键测试条件检查已有的在线测试脚本输入或抓取在线测试脚本检查已有的用于测试的数据生成测试数据检查重要的数据执行测试数据和测试脚本2)本系统测试案例如下:方法:功能模块测试方法方法:功能模块测试方法目的:测试录入功能的正确性预期结果:有出错警告过程:在用户管理中,没有选择任何选项,直接提交输入:无输入测试结果:无法保存,有出错警告比较:与预期结果相当结论:正确方法:功能模块测试方法方法:功能模块测试方法目的:测试录入功能的正确性预期结果:有出错警告过程:在提交信息中,不输入任何数据,直接提交输入:无输入测试结果:无法保存,有出错警告比较:与预期结果相当结论:正确6.2.4测试内容登录模块测试用户进行登录测试,登录之后查看相关功能是否正常,不正常的地方进行二次测试并记录。不同的登录用户,所给予的权限也不同,需要进行的操作也不相同。图6.1系统登录界面测试用例设计登录时存在相对较多的问题,比如用户信息输入不正确等,主要采用等价类划分和边界值测试的方法。测试用例如表6-1所示。表6-1(a)管理员登录项目名称管理员登录模块测试开发人员XXX模块名称管理员登录模块用例作者XXX参考信息需求规格说明书、设计说明书测试类型功能测试设计日期2016-12-16测试人员XXX测试方法手动测试与自动测试测试日期2016-12-16优先级1测试对象测试管理员能否正常登录前置条件正确的用户名admin123和密码admin123表6-2(b)管理员登录用例编号操作输入数据预期结果实际结果测试状态(P/F)1-1输入正确的用户名和密码,点击“登录”按钮用户名:admin123密码:123成功登录成功登录,进入系统P1-2输入正确的用户名和密码,点击键盘的"确定”按钮用户名:text密码:text成功登录成功登录,进入系统管理主页P1-3输入错误的用户,点击“登录”按钮用户名:jjj密码:123显示提示信息"您输入的用户不存在!请重新输入”显示提示信息"您输入的用户不存在!P1-4用户名和密码为空,点击“登录”按钮用户名:密码:显示提示信息“您输入的用户不存在”显示提示信息“您输入的用户不存在”P1-5用户名为空,密码不为空,点击“登录”按钮用户名:密码:123显示提示信息“您输入的用户不存在”显示提示信息“您输入的用户不存在”P1-6用户名不为空,密码为空,点击“登录”按钮用户名:admin密码:显示提示信息“您输入的密码不正确”显示提示信息“您输入的密码不正确”P注:测试完成之后填写最终结果。在用户的协助下,系统的测试工作才能不断地的进行修改,从而达到预期的效果。个人博客系统经过初步测试,基本上达到要求。7总结与展望本文介绍了如何使用PHP框架开发一个性能优化,可扩展性和安全性和可靠性的个人博客系统。该系统是由前端和后端两个模块组成。前台单元接受来自用户的请求,用户主要实现了登录注册、文章鉴赏、美图鉴赏、留言等功能。后台系统接收来自系统管理员的请求,对用户上传的图片、文字进行审核处理。然后根据这些功能进行分析设计,对所有用到的技术PHP,Mysql进行了简要的介绍。本设计所实现的是一个个人博客系统,主要介绍了PHP与Apache技术。系统按照总体设计、数据库设计、各个模块设计和代码分析,个人博客系统的基本功能已得到实现。由于时间有限,我了解到,这个系统在很多地方还需要改进,还有很多功能我还没玩过,以后我会进一步加强和完善学习过程。7.1系统总结及不足之处本系统具有以下优点:a)该系统可以在多个操作系统平台上运行,数据库管理系统采用MySQL和PHP开发环境,可移植性好。b)系统分为用户权限、用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论