实验室综合门户网站设计与实现.docx
《实验室综合门户网站设计与实现.docx》由会员分享,可在线阅读,更多相关《实验室综合门户网站设计与实现.docx(30页珍藏版)》请在冰豆网上搜索。
实验室综合门户网站设计与实现
实验室综合门户网站设计与实现
摘要
实验室综合门户网站是将实验室通过计算机网络连起来,采用科学的管理思想和先进的数据库技术,实现以实验室为核心的整体环境的全方位管理。
它集资源管理,事务管理,网络管理,数据管理(发布、编辑、删除、查看、输出),报表管理等诸多模块为一体,组成一套完整的实验室综合管理体系,既能满足外部的日常管理要求,又能保证实验室分析数据的严格管理和控制。
实验室综合门户网站管理系统主要实现以下功能:
实验室介绍管理、实验室新闻管理、实验室项目管理、栏目管理、会员管理(包括前台会员和管理员)、日志管理(登录日志和操作日志)、网站设置、推荐位等。
本系统提供了一个方便快捷的实验室管理平台,方便了指导老师和实验员的交流,提高了工作效率。
实验室综合门户网站管理系统基于B/S模式设计,以thinkphp为框架基础,在wamp提供的apache+mysql+php环境下采用php语言进行编写,以sublimetext2为开发工具。
关键词:
实验室,网站设计,thinkphp,wamp
TheDesignAndImplementationOfLaboratoryComprehensivePortalWebsite
ABSTRACT
Laboratorycomprehensiveportalisconnectedthroughthelaboratoryofcomputernetwork,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
目 录
前 言
随着社会的发展、信息技术的不断更新、计算机应用的迅猛发展、网络应用不断扩大,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等解释器编译到服务器中。
ApacheHTTP服务器是一个模块化的服务器,源于NCSAhttpd服务器,经过多次修改,成为世界使用排名第一的Web服务器软件。
它可以运行在几乎所有广泛使用的计算机平台上。
Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的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['HTTP_REFERER']."#comment_link");
}
4.1.3会员中心
会员中心是前台会员的管理中心,主要包括会员信息展示、会员信息修改、登录密码修改、收藏管理、评论管理。
用户可以在收藏管理中快速找到自己收藏的内容,也可以删除该收藏。
在评论列表中用户可以看到自己评论的内容,用户也可以通过该入口查看自己的评论,可以快速找到被评论的文章,也可以删除评论。
用户个人资料除基本的信息外还包括注册时间、上次登录时间、本次登录时间以及登录次数,方便用户更清楚的了解到自己的账户信息。
用户在会员中心修改密码时首先要验证旧密码,旧密码验证不通过不允许修改密码,这样保证用户账户的安全性,防止被恶意修改密码。
如果用户忘记自己的密码,需要与管理员联系,让管理员帮其修改密码。
会员中心收藏管理如图4-5所示。
图4-5会员中心收藏管理
会员中心评论管理如图4-6所示。
图4-6会员中心评论管理
会员中心个人资料展示如图4-7所示。