毕业设计(论文)-实验室综合门户网站设计与实现.doc_第1页
毕业设计(论文)-实验室综合门户网站设计与实现.doc_第2页
毕业设计(论文)-实验室综合门户网站设计与实现.doc_第3页
毕业设计(论文)-实验室综合门户网站设计与实现.doc_第4页
毕业设计(论文)-实验室综合门户网站设计与实现.doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

洛阳理工学院毕业设计(论文)实验室综合门户网站设计与实现摘 要实验室综合门户网站是将实验室通过计算机网络连起来,采用科学的管理思想和先进的数据库技术,实现以实验室为核心的整体环境的全方位管理。它集资源管理,事务管理,网络管理,数据管理(发布、编辑、删除、查看、输出),报表管理等诸多模块为一体,组成一套完整的实验室综合管理体系,既能满足外部的日常管理要求,又能保证实验室分析数据的严格管理和控制。实验室综合门户网站管理系统主要实现以下功能:实验室介绍管理、实验室新闻管理、实验室项目管理、栏目管理、会员管理(包括前台会员和管理员)、日志管理(登录日志和操作日志)、网站设置、推荐位等。本系统提供了一个方便快捷的实验室管理平台,方便了指导老师和实验员的交流,提高了工作效率。实验室综合门户网站管理系统基于B/S模式设计,以thinkphp为框架基础,在wamp提供的apache+mysql+php环境下采用php语言进行编写,以sublime text2为开发工具。关键词:实验室,网站设计,thinkphp,wamp The Design And Implementation Of Laboratory Comprehensive Portal WebsiteABSTRACTLaboratory comprehensive portal is connected through the laboratory of computer network, the use of scientific management ideas and advanced database technology, realize the comprehensive management of the overall environment in the laboratory as the core. It sets the resource management, transaction management, network management, data management (release, delete, view, edit, output) module, many statements of management as a whole, form a complete set of laboratory management system, which can meet the requirements of the daily management of the external, and can assure the strict management and control of laboratory data analysis.This system is mainly to achieve the following functions: the management of laboratory, laboratory information management, laboratory project management, program management, membership management (including the members and administrators), log management (login and operation log), site settings, recommendation etc. Provides a convenient platform for the laboratory management system, to facilitate the guidance of teachers and technicians of communication, improve work efficiency.This system is based on B/S design pattern with ThinkPHP framework, by using PHP language in Wamp apache+mysql+php environment, using sublime text2 as a development tool.KEY WORDS: Laboratory ,Website design,ThinkPHP ,Wamp3目录前言1第1章 相关技术21.1 开发技术介绍21.1.1 PHP技术21.1.2 MySQL数据库21.1.3 Apache服务器31.1.4 B/S结构31.2开发工具和运行环境4第2章 功能需求分析52.1 网站后台功能需求52.1.1 实验室介绍52.1.2 实验室新闻管理52.1.3 实验室项目管理52.1.4 栏目管理52.1.5 会员管理52.1.6 其它62.2 网站前台功能需求62.2.1 基本信息展示62.2.2 会员中心62.2.3 登录注册功能62.2.4 收藏和评论功能6第3章 概要设计73.1 数据字典73.2 功能模块设计73.2.1 后台流程73.2.2 内容管理83.2.3 栏目管理93.2.4 会员管理11第4章 详细设计134.1 用户功能设计与实现134.1.1 用户注册功能134.1.2 用户评论功能164.1.3 会员中心174.2 后台管理功能204.2.1 栏目管理204.2.2 权限设置224.2.3 日志管理264.2.4 防注入设置27结论28谢 辞29参考文献30前言随着社会的发展、信息技术的不断更新、计算机应用的迅猛发展、网络应用不断扩大,Internet已经得到了前所未有的高速发展,网站已经成为了一个单位或者组织宣传自己、了解别人、相互沟通的重要平台,人们迫切要求利用计算机网络技术来进行在线管理。除了可以大幅度提高人工效率和安全性之外,基于WEB的管理系统还可以自动分配各种设备、信息等资源、同时存档,有效地避免资源的浪费,有利于环保,减少人员,减轻负担,提高效率。计算机技术的进步,促使现代工业技术在快速发展,随着科研和生产技术的不断发展,企业的检验技术也从手工分析发展到仪器分析,检验项目大量增加,对数据的准确性和报出时间的要求越来越严格,数据处理量急速增加,原来的人工管理模式在这种形式下已显得不太适应,使用计算机完成数据的收集、分析和处理的管理手段应运而生。在这一背景下,实验室信息管理系统开始出现,并在实际应用中得到了快速发展,成为一项崭新的实验室管理与应用技术。 系统自动进行数据审核和超标数据监测、提高分析数据的准确性;工作效率大为提高;降低实验室成本消耗;通过对大量样品数据的综合统计分析,可以清楚地观察到数据的变化趋势、有效监测产品质量,为解决出现不合格生产产品及生产工艺变化提供科学依据。借助计算机技术,实验室内部实现网络化全面管理,实现管理和检验工作的有效监督管理,提高整体工作水平。高校实验室的管理已经由过去单一的教学管理,发展成为集教学、科研、开发等多功能为一体的综合体。实验室也成为规模大型化、结构综合化、系统复杂化、设备高档化的实验群体,由此带来的实验室管理工作也日趋复杂化。第1章 相关技术1.1 开发技术介绍 1.1.1 PHP技术PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。 1.1.2 MySQL数据库MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。与其他的大型数据库例如 Oracle、DB2、SQL Server等相比,MySQL 自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于 MySQ L是开放源码软件,因此可以大大降低总体拥有成本。 1.1.3 Apache服务器Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。Apache HTTP服务器是一个模块化的服务器,源于NCSAhttpd服务器,经过多次修改,成为世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。世界上很多著名的网站如Amazon、Yahoo!、W3 Consortium、Financial Times等都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。1.1.4 B/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开发工具和运行环境操作系统:Windows 7;服务器环境:Wamp5_1.7.4提供;开源框架:ThinkPHP;开发工具:Sublime Text 2;数据库链接工具:Navicat Premium。 第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(或昵称),用户同时可以回复别人的评论并且要有无限极回复功能。5洛阳理工学院毕业设计(论文)第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 会员操作日志表设计 26 第4章 详细设计4.1 用户功能设计与实现4.1.1 用户注册功能当用户正确、完整填写注册信息之后,检查用户名是否重复,如果重复则停止将用户信息上传至用户信息表。如果不重复,则上传相关数据,将一条新纪录添加到用户信息表中。注册页面的设计关键是运用了大量的验证控件来控制用户注册时填写的信息。比如用户名和密码等不能为空,密码与确认密码内容要一致。用户注册页面的流程图如图4-1所示。图4-1 用户注册流程图注册时验证用户名重复代码如图4-2所示。图4-2 验证用户名代码如上图代码所示,通过ajax技术在用户输入用户名后触发用户名验证,验证通过代码返回1,不通过则返回0。然后通过js判断返回值,反馈到前端页面。用户名验证无刷新反馈提醒如图4-3所示:图4-3 验证用户名重复用户名重复检测通过后,检测密码是否符合规则,两次密码是否一致,密码通过后,会执行注册代码,在数据库的用户表中添加一条数据。插入数据库代码如下:if(empty($_POSTagreement) | !isset($_POSTagreement)$this-error(你没有同意用户注册协议);exit;$info = $_POSTinfo;$infousername ? : $this-error(用户名不能为空); if($infopassword & $infopassword=$inforep_password)$infomima = $infopassword;$infopassword = passwordMember($infopassword);unset($inforep_password);$infonickname= $infonickname? $infonickname : $infousername;$infogroupid = 2;$inforegtime = time();$infolasttime = time();$infolognum = 1;$infologtime = time();$inforegip = ip();$infolastip = ip();$infologip = ip();$infolistorder = 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,$infousername); $this-success(注册成功,_ROOT_); else $this-error(注册失败); else$this-error(两次密码输入不一致);4.1.2 用户评论功能用户评论是用户对信息的反馈,用户与用户之间也要有良好的交互性,便于用户之间的交流。用户评论是基于新闻信息的,呈现在新闻的底部区域。评论区域包括评论文本框、验证码、提交按钮。验证码为防止用户恶意发表评论、刷评论等行为。评论框下是各个用户对该条信息的评论列表以及用户与用户之间的交互。用户评论模块设计如图4-4所示。图4-4 评论设计用户在输入完评论内容之后要输入验证码验证,验证码保证网站不被恶意攻击。验证码的验证同样采用ajax异步验证功能,验证不通过后即使提醒,方便重新输入。验证码验证通过后提交评论内容,程序会在数据库的评论表中插入一条数据,数据记录评论人、评论时间、被评论文章的相关信息等。提交评论代码如下:/*发表评论*/public function comment() $catid = isset($_GETcatid) ? intval($_GETcatid) : 0; $aid = isset($_GETaid) ? intval($_GETaid) : 0; if(empty($catid) | empty($aid) $this-error(参数错误); if(!$this-userid | !$this-username) $this-error(请先登录再发表评论); $comment = $_POSTcomment;/安全过滤 $commentcontent = htmlspecialchars($commentcontent); $commentuserid = $this-userid; $commentusername = $this-userinfonickname; $commentcatid = $catid; $commentaid = $aid; $commentmodelid = $this-get_modelid($catid); /获取模型ID $commentip = ip(); $commentstatus = 99; $commentinputtime = time(); $comment_db = M(Comment); $comment_db-add($comment); $this-success(评论成功,$_SERVERHTTP_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 代码如下:public function page_list() $category_db = M(Category);$where = array(modelid=4,status=99);$order = parentid asc,listorder asc; $list = $category_db-where($where)-order($order)-select();$parm = array(catid,parentid,catname,sname); $tree = new ThinkdpTree($parm ); $page_list = $tree-getTree($list); $this-assign(page_list,$page_list); $this-display(page_list); 栏目列表的最终呈现如图4-10所示。图4-10 栏目列表无限级添加栏目代码如下:$info = $_POSTinfo;if($infocatname & $infomodelid) $infocatname = htmlspecialchars($infocatname); $infoinputtime = time(); $infoshow = 1; $catid = $this-category_db-add($info); if($infoparentid=0) $infosarrparentid = 0; else $parentid = $infoparentid; /获取该栏目的arrparentid字符串 $parent = $this-category_db-find($parentid); $infosarrparentid = $parentarrparentid; $infosarrparentid .= ,.$parentid; /更新该栏目上级栏目的childrenid字符串 $this-catparent($parentid,$catid); /该栏目的子栏目 $infoschildrenid = $catid; $infosupdatetime = time(); $where = array(catid=$catid); $this-category_db-where($where)-save($infos);public function catparent($parentid,$catid) if(empty($parentid) | empty($catid) return false; $parent = $this-category_db-find($parentid); if(empty($parent) return false; /如果上级栏目为空返回false /修改上级栏目的childrenid字符串 $infochildrenid = $parentchildrenid.,.$catid;$where = array(catid=$parentid); $this-category_db-where($where)-save($info); if($parentparentid) /如果上级栏目还有上级栏目再次调用本方法 $this-catparent($parentparentid,$catid); else return true; 4.2.2 权限设置权限是管理员权利的体现,是管理员管理网站必不可少的,不一样的管理员赋予不一样的权利也保证了网站的安全性。在网站权限的设计中,我采用了读取权限文件的方法来管理权限。权限的文件主要有两个,一个是拥有所有权限即权限名称的文件privAll.php,另一个是管理员对应相应权限的文件priv.php。Priv.php的内容为json格式的字符串,在使用时读取json字符串转化为数组,在管理员进行操作时判断是否有操作的权限。管理员权限修改页面如图4-11所示。图4-11 权限修改页面权限写入文件代码如下:function set_config($config,$key,$filename)$path = CONF_PATH.$filename.php;if(!is_writable($path) return -1; /文件不可写时返回-1if($key)$fileContent = file_get_contents($path); /获取文件内容 /将json格式转化为数组$fileContent = json_decode($fileContent,true); $fileContent$key = $config; /替换要修改的内容else$fileContent = $config; $content = json_encode($fileContent); /将数组转化为JSONfile_put_contents($path,$content); /写入文件return 1;读取权限文件代码如下:function load_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;elsereturn array();权限判断代码如下:public function check_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,$userinfogroupid); $module = CONTROLLER_NAME; $action = ACTION_NAME; if(isset($privAll$module)&in_array($action,$privAll$module)&$userinfogroupid!=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()函数转化,这样即使参数被恶意改为非整型函数也会把参数转化为整型。安全过滤函数代码如下:function safe_array(&$info,$pass=array()if(is_array($info)foreach ($info as $_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模型的不了解,到掌握这门技术,把以前学的比较零的东西放到了一个完成的系统中,使知识成了体系。比如像数据库的设计和连接技术,CSS技术,HTML技术,PHP技术应用到了实践中,自成一体。同时,学会了用严谨的软件工程学来做设计,为我走向社会从事IT行业打下了一个不错的基础。同时,在这个过程中也遇到了很多

温馨提示

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

评论

0/150

提交评论