![实验室综合门户网站设计与实现_第1页](http://file4.renrendoc.com/view11/M02/1F/2E/wKhkGWWUtUqAXfR6AAMVnSMMkic050.jpg)
![实验室综合门户网站设计与实现_第2页](http://file4.renrendoc.com/view11/M02/1F/2E/wKhkGWWUtUqAXfR6AAMVnSMMkic0502.jpg)
![实验室综合门户网站设计与实现_第3页](http://file4.renrendoc.com/view11/M02/1F/2E/wKhkGWWUtUqAXfR6AAMVnSMMkic0503.jpg)
![实验室综合门户网站设计与实现_第4页](http://file4.renrendoc.com/view11/M02/1F/2E/wKhkGWWUtUqAXfR6AAMVnSMMkic0504.jpg)
![实验室综合门户网站设计与实现_第5页](http://file4.renrendoc.com/view11/M02/1F/2E/wKhkGWWUtUqAXfR6AAMVnSMMkic0505.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验室综合门户网站设计与实现摘要实验室综合门户网站是将实验室通过计算机网络连起来,采用科学的管理思想和先进的数据库技术,实现以实验室为核心的整体环境的全方位管理。它集资源管理,事务管理,网络管理,数据管理(发布、编辑、删除、查看、输出),报表管理等诸多模块为一体,组成一套完整的实验室综合管理体系,既能满足外部的日常管理要求,又能保证实验室分析数据的严格管理和控制。实验室综合门户网站管理系统主要实现以下功能:实验室介绍管理、实验室新闻管理、实验室工程管理、栏目管理、会员管理〔包括前台会员和管理员〕、日志管理〔登录日志和操作日志〕、网站设置、推荐位等。本系统提供了一个方便快捷的实验室管理平台,方便了指导老师和实验员的交流,提高了工作效率。实验室综合门户网站管理系统基于B/S模式设计,以thinkphp为框架根底,在wamp提供的apache+mysql+php环境下采用php语言进行编写,以sublimetext2为开发工具。关键词:实验室,网站设计,thinkphp,wampTheDesignAndImplementationOfLaboratoryComprehensivePortalWebsiteABSTRACTLaboratorycomprehensiveportalisconnectedthroughthelaboratoryofcomputernetwork,theuseofscientificmanagementideasandadvanceddatabasetechnology,realizethecomprehensivemanagementoftheoverallenvironmentinthelaboratoryasthecore.Itsetstheresourcemanagement,transactionmanagement,networkmanagement,datamanagement(release,delete,view,edit,output)module,manystatementsofmanagementasawhole,formacompletesetoflaboratorymanagementsystem,whichcanmeettherequirementsofthedailymanagementoftheexternal,andcanassurethestrictmanagementandcontroloflaboratorydataanalysis.Thissystemismainlytoachievethefollowingfunctions:themanagementoflaboratory,laboratoryinformationmanagement,laboratoryprojectmanagement,programmanagement,membershipmanagement(includingthemembersandadministrators),logmanagement(loginandoperationlog),sitesettings,recommendationetc..Providesaconvenientplatformforthelaboratorymanagementsystem,tofacilitatetheguidanceofteachersandtechniciansofcommunication,improveworkefficiency.ThissystemisbasedonB/SdesignpatternwithThinkPHPframework,byusingPHPlanguageinWampapache+mysql+phpenvironment,usingsublimetext2asadevelopmenttool.KEYWORDS:Laboratory,Websitedesign,ThinkPHP,Wamp目录28128前言11094第1章相关技术270321.1开发技术介绍295071.1.1PHP技术2161421.1.2MySQL数据库278021.1.3Apache效劳器3171191.1.4B/S结构3284501.2开发工具和运行环境414769第2章功能需求分析5227692.1网站后台功能需求5306192.1.1实验室介绍5314372.1.2实验室新闻管理557172.1.3实验室工程管理5195422.1.4栏目管理5268102.1.5会员管理540392.1.6其它6162882.2网站前台功能需求6133172.2.1根本信息展示6128562.2.2会员中心6122712.2.3登录注册功能6282962.2.4收藏和评论功能626991第3章概要设计7314393.1数据字典735543.2功能模块设计7222123.2.1后台流程7119683.2.2内容管理892323.2.3栏目管理9196493.2.4会员管理1130592第4章详细设计1332644.1用户功能设计与实现13165634.1.1用户注册功能13279564.1.2用户评论功能16256854.1.3会员中心17184234.2后台管理功能20177084.2.1栏目管理2029904.2.2权限设置2267764.2.3日志管理26125654.2.4防注入设置279855结论2821491谢辞2913874参考文献30前言随着社会的开展、信息技术的不断更新、计算机应用的迅猛开展、网络应用不断扩大,Internet已经得到了前所未有的高速开展,网站已经成为了一个单位或者组织宣传自己、了解别人、相互沟通的重要平台,人们迫切要求利用计算机网络技术来进行在线管理。除了可以大幅度提高人工效率和平安性之外,基于WEB的管理系统还可以自动分配各种设备、信息等资源、同时存档,有效地防止资源的浪费,有利于环保,减少人员,减轻负担,提高效率。计算机技术的进步,促使现代工业技术在快速开展,随着科研和生产技术的不断开展,企业的检验技术也从手工分析开展到仪器分析,检验工程大量增加,对数据的准确性和报出时间的要求越来越严格,数据处理量急速增加,原来的人工管理模式在这种形式下已显得不太适应,使用计算机完成数据的收集、分析和处理的管理手段应运而生。在这一背景下,实验室信息管理系统开始出现,并在实际应用中得到了快速开展,成为一项崭新的实验室管理与应用技术。系统自动进行数据审核和超标数据监测、提高分析数据的准确性;工作效率大为提高;降低实验室本钱消耗;通过对大量样品数据的综合统计分析,可以清楚地观察到数据的变化趋势、有效监测产品质量,为解决出现不合格生产产品及生产工艺变化提供科学依据。借助计算机技术,实验室内部实现网络化全面管理,实现管理和检验工作的有效监督管理,提高整体工作水平。高校实验室的管理已经由过去单一的教学管理,开展成为集教学、科研、开发等多功能为一体的综合体。实验室也成为规模大型化、结构综合化、系统复杂化、设备高档化的实验群体,由此带来的实验室管理工作也日趋复杂化。第1章相关技术1.1开发技术介绍1.1.1PHP技术PHP〔外文名:PHP:HypertextPreprocessor,中文名:“超文本预处理器〞〕是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML〔标准通用标记语言下的一个应用〕文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以到达加密和优化代码运行,使代码运行更快。1.1.2MySQL数据库MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle公司。MySQL最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软件之一。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策〔本词条“授权政策〞〕,它分为社区版和商业版,由于其体积小、速度快、总体拥有本钱低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。与其他的大型数据库例如Oracle、DB2、SQLServer等相比,MySQL自有它的缺乏之处,但是这丝毫也没有减少它受欢送的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有本钱。1.1.3Apache效劳器Apache是世界使用排名第一的Web效劳器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和平安性被广泛使用,是最流行的Web效劳器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到效劳器中。Apache效劳器是一个模块化的效劳器,源于NCSAd效劳器,经过屡次修改,成为世界使用排名第一的Web效劳器软件。它可以运行在几乎所有广泛使用的计算机平台上。Apache源于NCSAd效劳器,经过屡次修改,成为世界上最流行的Web效劳器软件之一。Apache取自“apatchyserver〞的读音,意思是充满补丁的效劳器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理效劳器来使用。本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为根底的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个ApacheWeb站点扩容时,通常是增加效劳器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web效劳器,市场占有率达60%左右。世界上很多著名的网站如Amazon、Yahoo!、W3Consortium、FinancialTimes等都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用〔可以运行在几乎所有的Unix、Windows、Linux系统平台上〕以及它的可移植性等方面。1.1.4B/S结构B/S结构〔Browser/Server结构〕结构即浏览器和效劳器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改良的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少局部事务逻辑在前端〔Browser〕实现,但是主要事务逻辑在效劳器端〔Server〕实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的本钱和工作量,降低了用户的总体本钱〔TCO〕。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、本钱也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式〔比方LAN,WAN,Internet/Intranet等〕访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,效劳器数据库也很平安。B/S结构有许多优点,例如:可以随时随地进行查询、浏览等业务处理,并具有分布性特点;业务扩展简单方便,通过增加网页即可增加效劳器功能;维护简单方便,只需要改变网页,即可实现所有用户的同步更新;开发简单,共享性强等。1.2开发工具和运行环境操作系统:Windows7;效劳器环境:Wamp5_1.7.4提供;开源框架:ThinkPHP;开发工具:SublimeText2;数据库链接工具:NavicatPremium。第2章功能需求分析2.1网站后台功能需求2.1.1实验室介绍实验室介绍是对实验室的根底描述,用户可以通过该栏目了解各实验室的根底情况以及实验的工程。后台提供实验室介绍的添加、修改、删除、查看等功能。2.1.2实验室新闻管理实验室新闻管理是对实验室新闻的集中处理,在该栏目下用户可以了解到实验室的大小事件,以及时间的处理方法。后台提供实验室新闻的添加、修改、删除、下架、等功能。2.1.3实验室工程管理实验室工程管理是实验室工程的集中处理,实验室工程包括实验大纲和实验讲义。实验大纲表达了实验的大致情况,同学们在进行实验之前对要进行的实验有大致的了解;实验讲义是实验的详细讲解,让同学们充分了解实验的内容和考前须知。后台提供实验室工程的添加、修改、删除、下架、等功能。2.1.4栏目管理栏目是网站的支架,是网站的主要构成局部,它就像一张无形的网,让网站的各个环节组合成一个主体。栏目保证了网站的层级关系和结构的完整性。后台提供栏目的添加、修改、删除、锁定等功能。2.1.5会员管理会员管理包括前台会员管理和后台会员管理。后台会员即网站管理员,管理员要有修改网站内容的权利。管理员有不同的权限,稳固网站的平安性。前台会员主要进行信息的收藏、评论功能。2.1.6其它除以上功能外还有网站的根本设置、推荐位管理、操作日志、登录日志管理等功能,这些功能是对网站的进一步完善,同事也让网站的管理者跟容易的处理网站相关事务。2.2网站前台功能需求2.2.1根本信息展示网站的前台信息展示是用户能直接看到的局部,此局部没有后台复杂,但要有良好的交互性。信息展示主要包括信息的分类、信息列表以及详细信息。因工程与新闻有着本质的区别,故在设计时对二者采用了不一样的设计方案。用户可以对关注的新闻进行收藏、评论、分享等操作。2.2.2会员中心用户可以在会员中心修改自己的根本信息、登录密码。同时用户还可以在会员中心查看管理自己收藏和评论的内容,让用户在使用中有更好的体验。2.2.3登录注册功能用户可以通过注册成为网站会员,已经个注册过的会员可以通过登录网站进入会员中心,进行收藏、评论等操作。2.2.4收藏和评论功能用户可以对感兴趣的新闻进行收藏和评论操作。收藏功能方便用户更快的找到收藏过的新闻;评论那么满足用户对新闻的观点,方便用户与用户之间的交流,评论要记录评论人ID〔或昵称〕,用户同时可以回复别人的评论并且要有无限极回复功能。第3章概要设计3.1数据字典数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程5局部。其中数据项是数据的最小组成单位,假设干个数据项可以组成一个数据结构,数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。数据项是不可再分的数据单位。对数据项的描述通常包括以下内容:数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系,数据项之间的联系}。通过对本系统的分析,得出本系统的数据字典:用户信息的描述项如表3-1所示。表3-1用户信息名称:用户别名:Users描述:存储系统中用户的根本信息组成:用户=用户名+密码+真实姓名+性别+年龄+会员类型+驾龄+驾驶证号+联系方+电子邮箱3.2功能模块设计3.2.1后台流程根据后台功能设计,画出后台功能大致流程结构图如图3-1所示。图3-1后台流程图3.2.2内容管理内容主要包括实验室工程和实验室新闻以及实验室介绍等内容。这局部主要实现的功能为内容的添加、修改、删除、下架、复原等操作。新闻局部还包括收藏和评论。根据功能分析内容管理大致流程图3-2所示。图3-2内容管理流程图根据内容管理功能要求设计数据库关系如图3-3所示〔以新闻管理为例〕。图3-3新闻表设计3.2.3栏目管理网站栏目主要实现栏目的添加,修改,删除,添加子栏目〔能够无限极添加子栏目〕等功能。栏目设立栏目模型,不同的模型有不一样的展示方式。模型同样有添加、修改、删除等功能。根据栏目功能设计,栏目流程图如图3-4所示。图3-4栏目管理流程图栏目表设计如图3-5所示。图3-5栏目表设计模型表设计如图3-6所示。图3-6模型表设计3.2.4会员管理会员模块主要是用于记录网站用户信息,登陆网站。管理员还用于网站的管理工作,拥有不同的权限。会员归属会员组,组有组权限,凡在此组下的会员都有该组的权限,从而进行管理员的权限控制。会员管理还需会员的登录及操作日志,方便通过会员的登录以及操作日志追踪会员进行的操作。但网站出现错误时方便追踪错误。会员表设计如图3-7所示。图3-7会员表设计图3-8会员副表设计图3-9会员组表设计图3-10会员操作日志表设计第4章详细设计4.1用户功能设计与实现4.1.1用户注册功能当用户正确、完整填写注册信息之后,检查用户名是否重复,如果重复那么停止将用户信息上传至用户信息表。如果不重复,那么上传相关数据,将一条新纪录添加到用户信息表中。注册页面的设计关键是运用了大量的验证控件来控制用户注册时填写的信息。比方用户名和密码等不能为空,密码与确认密码内容要一致。用户注册页面的流程图如图4-1所示。图4-1用户注册流程图注册时验证用户名重复代码如图4-2所示。图4-2验证用户名代码如上图代码所示,通过ajax技术在用户输入用户名后触发用户名验证,验证通过代码返回1,不通过那么返回0。然后通过js判断返回值,反应到前端页面。用户名验证无刷新反应提醒如图4-3所示:图4-3验证用户名重复用户名重复检测通过后,检测密码是否符合规那么,两次密码是否一致,密码通过后,会执行注册代码,在数据库的用户表中添加一条数据。插入数据库代码如下:if(empty($_POST['agreement'])||!isset($_POST['agreement'])){$this->error('你没有同意用户注册协议');exit;}$info=$_POST['info'];$info['username']?'':$this->error('用户名不能为空');if($info['password']&&$info['password']==$info['rep_password']){$info['mima']=$info['password'];$info['password']=passwordMember($info['password']);unset($info['rep_password']);$info['nickname']=$info['nickname']?$info['nickname']: $info['username'];$info['groupid']="2";$info['regtime']=time();$info['lasttime']=time();$info['lognum']=1;$info['logtime']=time();$info['regip']=ip();$info['lastip']=ip();$info['logip']=ip();$info['listorder']='10';$m=$this->member_db->data($info)->add();$this->member_data_db->data(array('userid'=>$m))->add();if($m){session('lab_userid',$m);session('lab_username',$info['username']);$this->success('注册成功',__ROOT__);}else{$this->error('注册失败');}}else{$this->error('两次密码输入不一致');}4.1.2用户评论功能用户评论是用户对信息的反应,用户与用户之间也要有良好的交互性,便于用户之间的交流。用户评论是基于新闻信息的,呈现在新闻的底部区域。评论区域包括评论文本框、验证码、提交按钮。验证码为防止用户恶意发表评论、刷评论等行为。评论框下是各个用户对该条信息的评论列表以及用户与用户之间的交互。用户评论模块设计如图4-4所示。图4-4评论设计用户在输入完评论内容之后要输入验证码验证,验证码保证网站不被恶意攻击。验证码的验证同样采用ajax异步验证功能,验证不通过后即使提醒,方便重新输入。验证码验证通过后提交评论内容,程序会在数据库的评论表中插入一条数据,数据记录评论人、评论时间、被评论文章的相关信息等。提交评论代码如下:/*发表评论*/publicfunctioncomment(){$catid=isset($_GET['catid'])?intval($_GET['catid']):'0';$aid=isset($_GET['aid'])?intval($_GET['aid']):'0';if(empty($catid)||empty($aid))$this->error('参数错误');if(!$this->userid||!$this->username)$this->error('请先登录再发表评论');$comment=$_POST['comment'];//平安过滤$comment['content']=htmlspecialchars($comment['content']);$comment['userid']=$this->userid;$comment['username']=$this->userinfo['nickname'];$comment['catid']=$catid;$comment['aid']=$aid;$comment['modelid']=$this->get_modelid($catid);//获取模型ID$comment['ip']=ip();$comment['status']='99';$comment['inputtime']=time();$comment_db=M('Comment');$comment_db->add($comment);$this->success('评论成功',$_SERVER['_REFERER']."#comment_link");}4.1.3会员中心会员中心是前台会员的管理中心,主要包括会员信息展示、会员信息修改、登录密码修改、收藏管理、评论管理。用户可以在收藏管理中快速找到自己收藏的内容,也可以删除该收藏。在评论列表中用户可以看到自己评论的内容,用户也可以通过该入口查看自己的评论,可以快速找到被评论的文章,也可以删除评论。用户个人资料除根本的信息外还包括注册时间、上次登录时间、本次登录时间以及登录次数,方便用户更清楚的了解到自己的账户信息。用户在会员中心修改密码时首先要验证旧密码,旧密码验证不通过不允许修改密码,这样保证用户账户的平安性,防止被恶意修改密码。如果用户忘记自己的密码,需要与管理员联系,让管理员帮其修改密码。会员中心收藏管理如图4-5所示。图4-5会员中心收藏管理会员中心评论管理如图4-6所示。图4-6会员中心评论管理会员中心个人资料展示如图4-7所示。图4-7会员中心个人资料会员中心密码修改代码如图4-8所示。图4-8密码修改代码4.2后台管理功能4.2.1栏目管理栏目的设计与实现中除了栏目最根本的添加、修改等功能外最主要的就是要实现栏目的无限级添加。栏目的无限级添加保证了栏目结构的完整性和严谨性,在技术上栏目的无限极添加也是挑战,主要的难点在于栏目与子栏目之间的关联。在栏目的列表中上下级的关系显示也显得非常重要,同时这也是难点。栏目的数据库设计如图4-9所示。图4-9栏目数据库设计栏目列表引入了一个完整的无限级栏目分类的类文件,这让栏目的呈现变得更简单,简洁,调用也很方便。栏目列表调用dpTree.class.php代码如下:publicfunctionpage_list(){$category_db=M('Category');$where=array('modelid'=>'4','status'=>'99');$order='parentidasc,listorderasc';$list=$category_db->where($where)->order($order)->select();$parm=array('catid','parentid','catname','sname');$tree=new\Think\dpTree($parm);$page_list=$tree->getTree($list);$this->assign('page_list',$page_list);$this->display('page_list');}栏目列表的最终呈现如图4-10所示。图4-10栏目列表无限级添加栏目代码如下:$info=$_POST['info'];if($info['catname']&&$info['modelid']){$info['catname']=htmlspecialchars($info['catname']);$info['inputtime']=time();$info['show']=1;$catid=$this->category_db->add($info);if($info['parentid']==0){$infos['arrparentid']=0;}else{$parentid=$info['parentid'];//获取该栏目的arrparentid字符串$parent=$this->category_db->find($parentid);$infos['arrparentid']=$parent['arrparentid'];$infos['arrparentid'].=",".$parentid;//更新该栏目上级栏目的childrenid字符串$this->catparent($parentid,$catid);}//该栏目的子栏目$infos['childrenid']=$catid;$infos['updatetime']=time();$where=array('catid'=>$catid);$this->category_db->where($where)->save($infos);}publicfunctioncatparent($parentid,$catid){if(empty($parentid)||empty($catid))returnfalse;$parent=$this->category_db->find($parentid);if(empty($parent))returnfalse;//如果上级栏目为空返回false//修改上级栏目的childrenid字符串$info['childrenid']=$parent['childrenid'].",".$catid;$where=array('catid'=>$parentid);$this->category_db->where($where)->save($info);if($parent['parentid']){//如果上级栏目还有上级栏目再次调用本方法$this->catparent($parent['parentid'],$catid);}else{returntrue;}}4.2.2权限设置权限是管理员权利的表达,是管理员管理网站必不可少的,不一样的管理员赋予不一样的权利也保证了网站的平安性。在网站权限的设计中,我采用了读取权限文件的方法来管理权限。权限的文件主要有两个,一个是拥有所有权限即权限名称的文件privAll.php,另一个是管理员对应相应权限的文件priv.php。Priv.php的内容为json格式的字符串,在使用时读取json字符串转化为数组,在管理员进行操作时判断是否有操作的权限。管理员权限修改页面如图4-11所示。图4-11权限修改页面权限写入文件代码如下:functionset_config($config,$key,$filename){ $path=CONF_PATH.$filename.".php"; if(!is_writable($path))return-1;//文件不可写时返回-1 if($key){ $fileContent=file_get_contents($path);//获取文件内容 //将json格式转化为数组 $fileContent=json_decode($fileContent,true); $fileContent[$key]=$config;//替换要修改的内容 }else{ $fileContent=$config; } $content=json_encode($fileContent);//将数组转化为JSON file_put_contents($path,$content);//写入文件 return1;}读取权限文件代码如下:functionload_configs($filename,$key='',$json=true){ $config=array(); if(empty($filename))return$config; $path=CONF_PATH.$filename.".php"; if($json){ $config=file_get_contents($path); $config=json_decode($config,true); }else{ $config=include$path; } if(empty($key)){ return$config; }elseif(isset($config[$key])){ return$config[$key]; }else{ returnarray(); } }权限判断代码如下:publicfunctioncheck_priv(&$param){$userid=session('admin_userid');$username=session('admin_username');if((empty($userid)||empty($username))&&ACTION_NAME!='login'){//$this->error('请先登录',__CONTROLLER__."/login");header("location:".__MODULE__."/Index/login");}$public=A('Public');$userinfo=$public->userinfo($userid);$privAll=load_configs('privAll','',false);$privlist=load_configs('priv',$userinfo['groupid']);$module=CONTROLLER_NAME;$action=ACTION_NAME;if(isset($privAll[$module])&&in_array($action,$privAll[$module])&&$userinfo['groupid']!=1){if(!isset($privlist[$module]) ||!in_array($action,$privlist[$module])){$param=-1;}}}该方法用传址的方法修改参数值,在公共函数的构造方法中判断该参数的值,如果值为-1那么提醒没有权限操作。4.2.3日志管理日志管理是网站的辅助工具,通过日志可以看出哪些管理员和会员登录了网站,可以看出管理员进行了哪些操作,方便以后追踪错误。因此日志要包含操作者,操作时间,操作的模块名称,控制器名称,方法名称,以及登录日志里用户的操作系统,浏览器,ip地址等信息。由于日志记录的全面性〔任何操作都会记录到日志〕会生成过多的记录,这对数据库很不利,一次日志提供删除一月前日之后的功能,这样可以及时对没用的日志进行清理,节省数据空间。为排错时方便日志还有搜索功能,在搜索条件的限定下可以找到某个用户进行的所有操作,也可以找到进行某个操作的所有用户,操作日志里的日期筛选可以把日志固定到两个时间之间,这样方便了错误发生时的排查。登录日志效果如图4-12所示。图4-12登录日志操作日志效果如图4-13所示。图4-13操作日志4.2.4防注入设置防注入是对用户及管理员输入的内容进行平安处理,防止输入的内容里有掺杂的代码内容而让程序终止或者出现错误,更严重的还会导致数据库的瘫痪。防注入主要运用PHP内置函数htmlspecialchars进行转化让需要的内容转化为html实体。Htmlspecialchars函数转化的对象是字符串,而网站中为方便通常要对数组进行平安过滤,这里用到了回调函数。除编辑器里的文本内容外,管理员输入信息、修改信息、搜索,会员修改资料时都需要用平安过滤函数过滤。录入信息是防注入的一种情况,还有一种情况就是地址栏过滤。网络黑客可以通过浏览器的地址输入某些代码信息让程序报错,然后破解你的数据库,同样可以利用地址栏删除你的数据库,这是非常危险的。所以在接收地址栏参数的时候要有一些平安措施防止参数中夹杂代码。比方当接收的参数是整型数据时,可以用intval()函数转化,这样即使参数被恶意改为非整型函数也会把参数转化为整型。平安过滤函数代码如下:functionsafe_array(&$info,$pass=array()){ if(is_array($info)){ foreach($infoas$_k=>$_v){ if((is_array($pass)&&!in_array($_k,$pass))||empty($_k)){ $info[$_k]=safe_array($_v,$pass); } } }else{ $info=htmlspecialchars($info); } return$info;}结论在指导老师李明照的认真指导下,通过这紧张的几个月努力,毕业设计课题根本成型。这几个月使我学会了很多东西。从对B/S模型的不了解,到掌握这门技术,把以前学的比拟零的东西放到了一个完成的系统中,使知识成了体系。比方像数据库的设
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年装卸机械项目立项申请报告模式
- 2025年上海高级商场物业管理续签合同协议
- 2025年胶片型相机、CCD相机、红外相机、恒星相机项目规划申请报告模板
- 2025年劳动合同法续约条件规定
- 优化农业产业供应链的合同范例2025年
- 2025年设备租赁展示合同范本
- 2025年公共交通广告安装服务协议
- 2025年上海技术顾问合同
- 2025年建筑项目材料采购申请及供销协议
- 2025年二手房产交易定金给付合同协议样本
- 教师师德专题培训
- 2024年湖南生物机电职业技术学院高职单招职业技能测验历年参考题库(频考版)含答案解析
- 成都市2024-2025学年度上期期末高一期末语文试卷(含答案)
- 2025年教育局财务工作计划
- 教科版四年级下册科学科学教案+教材分析
- 广东2024年广东金融学院招聘工作人员10人笔试历年典型考点(频考版试卷)附带答案详解
- T-WSJD 18.22-2024 工作场所空气中化学因素测定 双氯甲醚的便携式气相色谱-质谱法
- 北京市东城区2023-2024学年高二下学期期末英语试题 含解析
- 中国食物成分表2020年权威完整改进版
- 各施工阶段安全管理的重点及安全保证措施
- 2024年金属非金属矿山(地下矿山)安全管理人员考试练习题(100题)附答案
评论
0/150
提交评论