版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 PAGE35 / NUMPAGES39实验室综合门户设计与实现摘 要实验室综合门户是将实验室通过计算机网络连起来,采用科学的管理思想和先进的数据库技术,实现以实验室为核心的整体环境的全方位管理。它集资源管理,事务管理,网络管理,数据管理(发布、编辑、删除、查看、输出),报表管理等诸多模块为一体,组成一套完整的实验室综合管理体系,既能满足外部的日常管理要求,又能保证实验室分析数据的严格管理和控制。实验室综合门户管理系统主要实现以下功能:实验室介绍管理、实验室新闻管理、实验室项目管理、栏目管理、会员管理(包括前台会员和管理员)、日志管理(登录日志和操作日志)、设置、推荐位等。本系统提供了一个方便
2、快捷的实验室管理平台,方便了指导老师和实验员的交流,提高了工作效率。实验室综合门户管理系统基于B/S模式设计,以thinkphp为框架基础,在wamp提供的apache+mysql+php环境下采用php语言进行编写,以sublime text2为开发工具。关键词:实验室,设计,thinkphp,wampThe Design And Implementation Of Laboratory Comprehensive Portal WebsiteABSTRACTLaboratory comprehensive portal is connected through the laboratory
3、 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,
4、 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 a
5、chieve 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
6、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 t
7、ext2 as a development tool.KEY WORDS: Laboratory ,Website design,ThinkPHP ,Wamp目录TOC o 1-3 h z u HYPERLINK l _Toc28128 前言 PAGEREF _Toc28128 1 HYPERLINK l _Toc1094 第1章 相关技术 PAGEREF _Toc1094 2 HYPERLINK l _Toc7032 1.1 开发技术介绍 PAGEREF _Toc7032 2 HYPERLINK l _Toc9507 1.1.1 PHP技术 PAGEREF _Toc9507 2 HYPERL
8、INK l _Toc16142 1.1.2 MySQL数据库 PAGEREF _Toc16142 2 HYPERLINK l _Toc7802 1.1.3 Apache服务器 PAGEREF _Toc7802 3 HYPERLINK l _Toc17119 1.1.4 B/S结构 PAGEREF _Toc17119 3 HYPERLINK l _Toc28450 1.2开发工具和运行环境 PAGEREF _Toc28450 4 HYPERLINK l _Toc14769 第2章 功能需求分析 PAGEREF _Toc14769 5 HYPERLINK l _Toc22769 2.1 后台功能需
9、求 PAGEREF _Toc22769 5 HYPERLINK l _Toc30619 2.1.1 实验室介绍 PAGEREF _Toc30619 5 HYPERLINK l _Toc31437 2.1.2 实验室新闻管理 PAGEREF _Toc31437 5 HYPERLINK l _Toc5717 2.1.3 实验室项目管理 PAGEREF _Toc5717 5 HYPERLINK l _Toc19542 2.1.4 栏目管理 PAGEREF _Toc19542 5 HYPERLINK l _Toc26810 2.1.5 会员管理 PAGEREF _Toc26810 5 HYPERLIN
10、K l _Toc4039 2.1.6 其它 PAGEREF _Toc4039 6 HYPERLINK l _Toc16288 2.2 前台功能需求 PAGEREF _Toc16288 6 HYPERLINK l _Toc13317 2.2.1 基本信息展示 PAGEREF _Toc13317 6 HYPERLINK l _Toc12856 2.2.2 会员中心 PAGEREF _Toc12856 6 HYPERLINK l _Toc12271 2.2.3 登录注册功能 PAGEREF _Toc12271 6 HYPERLINK l _Toc28296 2.2.4 收藏和评论功能 PAGEREF
11、 _Toc28296 6 HYPERLINK l _Toc26991 第3章 概要设计 PAGEREF _Toc26991 7 HYPERLINK l _Toc31439 3.1 数据字典 PAGEREF _Toc31439 7 HYPERLINK l _Toc3554 3.2 功能模块设计 PAGEREF _Toc3554 7 HYPERLINK l _Toc22212 3.2.1 后台流程 PAGEREF _Toc22212 7 HYPERLINK l _Toc11968 3.2.2 容管理 PAGEREF _Toc11968 8 HYPERLINK l _Toc9232 3.2.3 栏目
12、管理 PAGEREF _Toc9232 9 HYPERLINK l _Toc19649 3.2.4 会员管理 PAGEREF _Toc19649 11 HYPERLINK l _Toc30592 第4章 详细设计 PAGEREF _Toc30592 13 HYPERLINK l _Toc3264 4.1 用户功能设计与实现 PAGEREF _Toc3264 13 HYPERLINK l _Toc16563 4.1.1 用户注册功能 PAGEREF _Toc16563 13 HYPERLINK l _Toc27956 4.1.2 用户评论功能 PAGEREF _Toc27956 16 HYPER
13、LINK l _Toc25685 4.1.3 会员中心 PAGEREF _Toc25685 17 HYPERLINK l _Toc18423 4.2 后台管理功能 PAGEREF _Toc18423 20 HYPERLINK l _Toc17708 4.2.1 栏目管理 PAGEREF _Toc17708 20 HYPERLINK l _Toc2990 4.2.2 权限设置 PAGEREF _Toc2990 22 HYPERLINK l _Toc6776 4.2.3 日志管理 PAGEREF _Toc6776 26 HYPERLINK l _Toc12565 4.2.4 防注入设置 PAGER
14、EF _Toc12565 27 HYPERLINK l _Toc9855 结论 PAGEREF _Toc9855 28 HYPERLINK l _Toc21491 辞 PAGEREF _Toc21491 29 HYPERLINK l _Toc13874 参考文献 PAGEREF _Toc13874 30前言随着社会的发展、信息技术的不断更新、计算机应用的迅猛发展、网络应用不断扩大,Internet已经得到了前所未有的高速发展,已经成为了一个单位或者组织宣传自己、了解别人、相互沟通的重要平台,人们迫切要求利用计算机网络技术来进行在线管理。除了可以大幅度提高人工效率和安全性之外,基于WEB的管理系
15、统还可以自动分配各种设备、信息等资源、同时存档,有效地避免资源的浪费,有利于环保,减少人员,减轻负担,提高效率。计算机技术的进步,促使现代工业技术在快速发展,随着科研和生产技术的不断发展,企业的检验技术也从手工分析发展到仪器分析,检验项目大量增加,对数据的准确性和报出时间的要求越来越严格,数据处理量急速增加,原来的人工管理模式在这种形式下已显得不太适应,使用计算机完成数据的收集、分析和处理的管理手段应运而生。在这一背景下,实验室信息管理系统开始出现,并在实际应用中得到了快速发展,成为一项崭新的实验室管理与应用技术。 系统自动进行数据审核和超标数据监测、提高分析数据的准确性;工作效率大为提高;降
16、低实验室成本消耗;通过对大量样品数据的综合统计分析,可以清楚地观察到数据的变化趋势、有效监测产品质量,为解决出现不合格生产产品与生产工艺变化提供科学依据。借助计算机技术,实验室部实现网络化全面管理,实现管理和检验工作的有效监督管理,提高整体工作水平。高校实验室的管理已经由过去单一的教学管理,发展成为集教学、科研、开发等多功能为一体的综合体。实验室也成为规模大型化、结构综合化、系统复杂化、设备高档化的实验群体,由此带来的实验室管理工作也日趋复杂化。第1章 相关技术1.1 开发技术介绍1.1.1 PHP技术PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处
17、理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以与PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。1.1.2MySQL数据库MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Orac
18、le 公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库,这样就增加了速度并提高了灵活性。MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型的开发都选择 MyS
19、QL 作为数据库。由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。与其他的大型数据库例如 Oracle、DB2、SQL Server等相比,MySQL 自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于 MySQ L是开放源码软件,因此可以大大降低总体拥有成本。1.1.3 Apache服务器Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API
20、扩充,将Perl/Python等解释器编译到服务器中。Apache 服务器是一个模块化的服务器,源于NCSA d服务器,经过多次修改,成为世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。Apache源于NCSA d服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。本来它只用于小型或试验Internet网络,后来逐步扩充到各种Un
21、ix系统中,尤其对Linux的支持相当完美。Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。世界上很多著名的如Amazon、Yahoo!、W3 Consortium、Financial Times等都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Un
22、ix、Windows、Linux系统平台上)以与它的可移植性等方面。1.1.4 B/S结构B/S结构(Browser/Server结构)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet
23、模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。B/S结构有许多优点,例如:可以随时随地进行查询、浏览等业务处理,并具有分布性特点;业务扩展简单方便,通过增加网页即可增加服务器功能;维护简单方便,只需要改变网页,即可实现所有用户的同步更新;开发简单,共享性强等。1.2开发工具和运行环境操作系统:Windows 7;服务器环境:Wamp5_1.7.4提供;开源框架:ThinkPHP
24、;开发工具:Sublime Text 2;数据库工具:Navicat Premium。第2章 功能需求分析2.1 后台功能需求2.1.1实验室介绍实验室介绍是对实验室的基础描述,用户可以通过该栏目了解各实验室的基础情况以与实验的项目。后台提供实验室介绍的添加、修改、删除、查看等功能。2.1.2实验室新闻管理实验室新闻管理是对实验室新闻的集中处理,在该栏目下用户可以了解到实验室的大小事件,以与时间的处理方法。后台提供实验室新闻的添加、修改、删除、下架、等功能。2.1.3 实验室项目管理实验室项目管理是实验室项目的集中处理,实验室项目包括实验大纲和实验讲义。实验大纲体现了实验的大致情况,同学们在进
25、行实验之前对要进行的实验有大致的了解;实验讲义是实验的详细讲解,让同学们充分了解实验的容和注意事项。后台提供实验室项目的添加、修改、删除、下架、等功能。2.1.4 栏目管理栏目是的支架,是的主要构成部分,它就像一无形的网,让的各个环节组合成一个主体。栏目保证了的层级关系和结构的完整性。 后台提供栏目的添加、修改、删除、锁定等功能。2.1.5 会员管理会员管理包括前台会员管理和后台会员管理。后台会员即管理员,管理员要有修改容的权利。管理员有不同的权限,巩固的安全性。前台会员主要进行信息的收藏、评论功能。2.1.6 其它除以上功能外还有的基本设置、推荐位管理、操作日志、登录日志管理等功能,这些功能
26、是对的进一步完善,同事也让的管理者跟容易的处理相关事务。2.2 前台功能需求2.2.1基本信息展示的前台信息展示是用户能直接看到的部分,此部分没有后台复杂,但要有良好的交互性。信息展示主要包括信息的分类、信息列表以与详细信息。因项目与新闻有着本质的区别,故在设计时对二者采用了不一样的设计方案。用户可以对关注的新闻进行收藏、评论、分享等操作。2.2.2 会员中心用户可以在会员中心修改自己的基本信息、登录密码。同时用户还可以在会员中心查看管理自己收藏和评论的容,让用户在使用中有更好的体验。2.2.3 登录注册功能用户可以通过注册成为会员,已经个注册过的会员可以通过登录进入会员中心,进行收藏、评论等
27、操作。2.2.4 收藏和评论功能用户可以对感兴趣的新闻进行收藏和评论操作。收藏功能方便用户更快的找到收藏过的新闻;评论则满足用户对新闻的观点,方便用户与用户之间的交流,评论要记录评论人ID(或昵称),用户同时可以回复别人的评论并且要有无限极回复功能。第3章 概要设计3.1 数据字典数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程5部分。其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构,数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑容。数据项是不可再分的数据单位。对数据项的描述通常包括以下容:数据项描述=数据项名,数据项含义说明,别名,数据类型,长度
28、,取值围,取值含义,与其他数据项的逻辑关系,数据项之间的联系。通过对本系统的分析,得出本系统的数据字典:用户信息的描述项如表3-1所示。表3-1 用户信息名称:用户别名:Users描述:存储系统中用户的基本信息组成:用户=用户名+密码+真实+性别+年龄+会员类型+驾龄+驾驶证号+联系方+电子3.2 功能模块设计3.2.1后台流程根据后台功能设计,画出后台功能大致流程结构图如图3-1所示。图3-1 后台流程图3.2.2容管理容主要包括实验室项目和实验室新闻以与实验室介绍等容。这部分主要实现的功能为容的添加、修改、删除、下架、还原等操作。新闻部分还包括收藏和评论。根据功能分析容管理大致流程图3-2
29、所示。图3-2 容管理流程图根据容管理功能要求设计数据库关系如图3-3所示(以新闻管理为例)。图3-3 新闻表设计3.2.3 栏目管理栏目主要实现栏目的添加,修改,删除,添加子栏目(能够无限极添加子栏目)等功能。栏目设立栏目模型,不同的模型有不一样的展示方式。模型同样有添加、修改、删除等功能。根据栏目功能设计,栏目流程图如图3-4所示。图3-4 栏目管理流程图栏目表设计如图3-5所示。图3-5 栏目表设计模型表设计如图3-6所示。图3-6 模型表设计3.2.4 会员管理会员模块主要是用于记录用户信息,登陆。管理员还用于的管理工作,拥有不同的权限。会员归属会员组,组有组权限,凡在此组下的会员都有
30、该组的权限,从而进行管理员的权限控制。会员管理还需会员的登录与操作日志,方便通过会员的登录以与操作日志追踪会员进行的操作。但出现错误时方便追踪错误。会员表设计如图3-7所示。图3-7 会员表设计图3-8 会员副表设计图3-9 会员组表设计图3-10 会员操作日志表设计第4章 详细设计4.1 用户功能设计与实现4.1.1 用户注册功能当用户正确、完整填写注册信息之后,检查用户名是否重复,如果重复则停止将用户信息上传至用户信息表。如果不重复,则上传相关数据,将一条新纪录添加到用户信息表中。注册页面的设计关键是运用了大量的验证控件来控制用户注册时填写的信息。比如用户名和密码等不能为空,密码与确认密码
31、容要一致。用户注册页面的流程图如图4-1所示。图4-1 用户注册流程图注册时验证用户名重复代码如图4-2所示。图4-2 验证用户名代码如上图代码所示,通过ajax技术在用户输入用户名后触发用户名验证,验证通过代码返回1,不通过则返回0。然后通过js判断返回值,反馈到前端页面。用户名验证无刷新反馈提醒如图4-3所示:图4-3 验证用户名重复用户名重复检测通过后,检测密码是否符合规则,两次密码是否一致,密码通过后,会执行注册代码,在数据库的用户表中添加一条数据。插入数据库代码如下:if(empty($_POSTagreement) | !isset($_POSTagreement)$this-er
32、ror(你没有同意用户注册协议);exit;$info = $_POSTinfo;$infousername ? : $this-error(用户名不能为空); if($infopassword & $infopassword=$inforep_password)$infomima = $infopassword;$infopassword = passwordMember($infopassword);unset($inforep_password);$infonickname= $infonickname? $infonickname : $infousername;$infogroupi
33、d = 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_use
34、rname,$infousername); $this-success(注册成功,_ROOT_); else $this-error(注册失败); else$this-error(两次密码输入不一致);4.1.2用户评论功能用户评论是用户对信息的反馈,用户与用户之间也要有良好的交互性,便于用户之间的交流。用户评论是基于新闻信息的,呈现在新闻的底部区域。评论区域包括评论文本框、验证码、提交按钮。验证码为防止用户恶意发表评论、刷评论等行为。评论框下是各个用户对该条信息的评论列表以与用户与用户之间的交互。用户评论模块设计如图4-4所示。图4-4 评论设计用户在输入完评论容之后要输入验证码验证,验证码
35、保证不被恶意攻击。验证码的验证同样采用ajax异步验证功能,验证不通过后即使提醒,方便重新输入。验证码验证通过后提交评论容,程序会在数据库的评论表中插入一条数据,数据记录评论人、评论时间、被评论文章的相关信息等。提交评论代码如下:/*发表评论*/public function comment() $catid = isset($_GETcatid) ? intval($_GETcatid) : 0; $aid = isset($_GETaid) ? intval($_GETaid) : 0; if(empty($catid) | empty($aid) $this-error(参数错误); i
36、f(!$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($ca
37、tid); /获取模型ID $commentip = ip(); $commentstatus = 99; $commentinputtime = time(); $comment_db = M(Comment); $comment_db-add($comment); $this-success(评论成功,$_SERVER _REFERER.#comment_link); 4.1.3 会员中心会员中心是前台会员的管理中心,主要包括会员信息展示、会员信息修改、登录密码修改、收藏管理、评论管理。用户可以在收藏管理中快速找到自己收藏的容,也可以删除该收藏。在评论列表中用户可以看到自己评论的容,用户也
38、可以通过该入口查看自己的评论,可以快速找到被评论的文章,也可以删除评论。用户个人资料除基本的信息外还包括注册时间、上次登录时间、本次登录时间以与登录次数,方便用户更清楚的了解到自己的账户信息。用户在会员中心修改密码时首先要验证旧密码,旧密码验证不通过不允许修改密码,这样保证用户账户的安全性,防止被恶意修改密码。如果用户忘记自己的密码,需要与管理员联系,让管理员帮其修改密码。会员中心收藏管理如图4-5所示。图4-5 会员中心收藏管理会员中心评论管理如图4-6所示。图 4-6 会员中心评论管理会员中心个人资料展示如图4-7所示。图4-7 会员中心个人资料会员中心密码修改代码如图4-8所示。图4-8
39、 密码修改代码4.2 后台管理功能4.2.1 栏目管理栏目的设计与实现中除了栏目最基本的添加、修改等功能外最主要的就是要实现栏目的无限级添加。栏目的无限级添加保证了栏目结构的完整性和严谨性,在技术上栏目的无限极添加也是挑战,主要的难点在于栏目与子栏目之间的关联。在栏目的列表中上下级的关系显示也显得非常重要,同时这也是难点。栏目的数据库设计如图4-9所示。图4-9 栏目数据库设计栏目列表引入了一个完整的无限级栏目分类的类文件,这让栏目的呈现变得更简单,简洁,调用也很方便。栏目列表调用dpTree.class.php 代码如下:public function page_list() $catego
40、ry_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);
41、$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
42、 = $infoparentid; /获取该栏目的arrparentid字符串 $parent = $this-category_db-find($parentid); $infosarrparentid = $parentarrparentid; $infosarrparentid .= ,.$parentid; /更新该栏目上级栏目的childrenid字符串 $this-catparent($parentid,$catid); /该栏目的子栏目 $infoschildrenid = $catid; $infosupdatetime = time(); $where = array(cat
43、id=$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 = $parentchildren
44、id.,.$catid;$where = array(catid=$parentid); $this-category_db-where($where)-save($info); if($parentparentid) /如果上级栏目还有上级栏目再次调用本方法 $this-catparent($parentparentid,$catid); else return true; 4.2.2 权限设置权限是管理员权利的体现,是管理员管理必不可少的,不一样的管理员赋予不一样的权利也保证了的安全性。在权限的设计中,我采用了读取权限文件的方法来管理权限。权限的文件主要有两个,一个是拥有所有权限即权限名称
45、的文件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_conten
46、ts($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)
47、$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
48、 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); $pr
49、ivAll = 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; 该方法用
50、传址的方法修改参数值,在公共函数的构造方法中判断该参数的值,如果值为-1则提醒没有权限操作。4.2.3 日志管理日志管理是的辅助工具,通过日志可以看出哪些管理员和会员登录了,可以看出管理员进行了哪些操作,方便以后追踪错误。因此日志要包含操作者,操作时间,操作的模块名称,控制器名称,方法名称,以与登录日志里用户的操作系统,浏览器,ip地址等信息。由于日志记录的全面性(任何操作都会记录到日志)会生成过多的记录,这对数据库很不利,一次日志提供删除一月前日之后的功能,这样可以与时对没用的日志进行清理,节省数据空间。为排错时方便日志还有搜索功能,在搜索条件的限定下可以找到某个用户进行的所有操作,也可以找
51、到进行某个操作的所有用户,操作日志里的日期筛选可以把日志固定到两个时间之间,这样方便了错误发生时的排查。登录日志效果如图4-12所示。图4-12 登录日志操作日志效果如图4-13所示。图4-13 操作日志4.2.4 防注入设置防注入是对用户与管理员输入的容进行安全处理,防止输入的容里有掺杂的代码容而让程序终止或者出现错误,更严重的还会导致数据库的瘫痪。防注入主要运用PHP置函数htmlspecialchars 进行转化让需要的容转化为html实体。Htmlspecialchars函数转化的对象是字符串,而中为方便通常要对数组进行安全过滤,这里用到了回调函数。除编辑器里的文本容外,管理员输入信息
52、、修改信息、搜索,会员修改资料时都需要用安全过滤函数过滤。录入信息是防注入的一种情况,还有一种情况就是地址栏过滤。网络黑客可以通过浏览器的地址输入某些代码信息让程序报错,然后破解你的数据库,同样可以利用地址栏删除你的数据库,这是非常危险的。所以在接收地址栏参数的时候要有一些安全措施防止参数中夹杂代码。比如当接收的参数是整型数据时,可以用intval()函数转化,这样即使参数被恶意改为非整型函数也会把参数转化为整型。安全过滤函数代码如下:function safe_array(&$info,$pass=array()if(is_array($info)foreach ($info as $_k
53、= $_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技术应用到了实践中,自成一体。同时,学会了用
54、严谨的软件工程学来做设计,为我走向社会从事IT行业打下了一个不错的基础。同时,在这个过程中也遇到了很多问题,通过请教吴老师和与同学交流,还有上网查相关的资料,这不仅锻炼了自己的沟通能力同时还培养了自己分析问题和解决问题的能力,我相信这些都是以后的工作生涯所不可缺少的东西。但是毕业设计也暴露出自己专业基础的很多不足之处。比如缺乏综合应用专业知识的能力,对材料的不了解,等等。这次实践是对自己大学四年所学的一次大检阅,使我明白自己知识还很浅薄,虽然马上要毕业了,但是自己的求学之路还很长,以后更应该在工作中学习,努力使自己 成为一个对社会有所贡献的人,为中国社会建设添上自己的微薄之力。实验室综合门户管
55、理系统是实验室管理的新手段,通过该技术可以方便用户在不同地点,不同时间段做实验,有利于资源的共享与技术的交流,是时下最经济,最科学,是有效的实验技术之一。当然,也有不足之处,希望能在日后的使用过程中,继续改进本系统,然后使之更加有效的投入实验运用过程中,产生实际的经济效益。 辞三年的大学生活即将结束,在校的学习生活既充实也充满了快乐,毕业论文是我这一阶段学习情况的总结。在此谨向所有关心、帮助、指导过我的老师、同学、朋友和亲人致以最诚挚的感。本设计能够顺利地完成,要特别感一直以来指导我帮助我完成毕业设计的指导老师明照,他严谨的治学态度、诲人不倦的工作作风给我留下了深刻的印象。这段时间他对我的毕业
56、设计提出了很多宝贵的建议,用孜孜不倦的教导和无微不至的关怀引领着我,使我少走了很多弯路,帮助着我顺利的走过了最后的大学生活。此外还要感大学三年教授我们专业课程的各位任课老师,正是由于他们平时教课认真负责、不厌其烦地为我们解惑,我才能够很好地掌握和运用专业知识,我的毕业设计也才能很顺利的完成。在此向全体任课老师表达我真诚的意,感他们这四年来对我的辛勤栽培和无微不至的关怀。在做毕业设计的过程中,同学们对我的帮助也有很多,在我遇到困难的时候,身边的同学总能在第一时间帮我解决问题,在同学们的大力帮助下,这次毕业设计才能够顺利完成。在此我对所有帮助我、鼓励我的同学们表示诚挚的感。参考文献1 宇军.C#面
57、向对象程序设计M.:人民邮电,2009.2 王珊,萨师煊.数据库系统概论(第4版)M.:高等教育,2006. 3 伟,卫琳.ASP.NET 3.5开发实例教程M.:清华大学,2009.4 余俊杰,华.基于ASP.NET的HYPERLINK :/ /kcms/detail/detail.aspx?filename=KJIG201209021&dbcode=CJFQ&dbname=CJFDTEMP&v=MjI1NDY2ZlpPUnNGeTduVWJ6SUxpZkNhYkc0SDlQTXBvOUhaWVIrQzM4NHpoNFhuRDBMVGcyWDJoc3hGckNVUkw=汽车租赁管理系统的设计与实现J.科技广场,2012,(09):128-129. 5 小影,小娜.HYPERLINK :/ /kcms/detail/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汕尾职业技术学院《中学语文教师技能训练》2023-2024学年第一学期期末试卷
- 工人制作合同范例
- 汕头大学《数据挖掘基础》2023-2024学年第一学期期末试卷
- 陕西中医药大学《设施作物栽培学实验》2023-2024学年第一学期期末试卷
- 炉渣采购合同范例
- 租赁农田种植合同范例
- 2024至2030年大理石保新剂项目投资价值分析报告
- 网络安全检查合同范例
- 陕西学前师范学院《卫星导航定位技术与应用》2023-2024学年第一学期期末试卷
- 2024至2030年人造大理石胶项目投资价值分析报告
- -腹腔镜下肝部分切除术的护理查房
- 消防工程施工方案
- 【MOOC】信号与系统-南京邮电大学 中国大学慕课MOOC答案
- 大学美育(同济大学版)学习通超星期末考试答案章节答案2024年
- 中国重症患者肠外营养治疗临床实践专家共识(2024)解读
- 足三阴经周康梅
- MOOC 跨文化交际通识通论-扬州大学 中国大学慕课答案
- 10000中国普通人名大全
- 数独“六宫”练习题
- 水利工程竣工验收报告表格(共5页)
- 码头工程主要施工设备表
评论
0/150
提交评论