实验室综合门户网站设计与实现

实验室综合门户网站设计与实现
实验室综合门户网站设计与实现

实验室综合门户网站设计与实现

摘要

实验室综合门户网站是将实验室通过计算机网络连起来,采用科学的管理思想和先进的数据库技术,实现以实验室为核心的整体环境的全方位管理。它集资源管理,事务管理,网络管理,数据管理(发布、编辑、删除、查看、输出),报表管理等诸多模块为一体,组成一套完整的实验室综合管理体系,既能满足外部的日常管理要求,又能保证实验室分析数据的严格管理和控制。

实验室综合门户网站管理系统主要实现以下功能:实验室介绍管理、实验室新闻管理、实验室项目管理、栏目管理、会员管理(包括前台会员和管理员)、日志管理(登录日志和操作日志)、网站设置、推荐位等。本系统提供了一个方便快捷的实验室管理平台,方便了指导老师和实验员的交流,提高了工作效率。

实验室综合门户网站管理系统基于B/S模式设计,以thinkphp为框架基础,在wamp提供的apache+mysql+php环境下采用php语言进行编写,以sublime text2为开发工具。

关键词:实验室,网站设计,thinkphp,wamp

The Design And Implementation Of Laboratory Comprehensive

Portal Website

ABSTRACT

Laboratory 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 ,Wamp

目录

前言 (1)

第1章相关技术 (2)

1.1 开发技术介绍 (2)

1.1.1 PHP技术 (2)

1.1.2 MySQL数据库 (2)

1.1.3 Apache服务器 (3)

1.1.4 B/S结构 (3)

1.2开发工具和运行环境 (4)

第2章功能需求分析 (5)

2.1 网站后台功能需求 (5)

2.1.1 实验室介绍 (5)

2.1.2 实验室新闻管理 (5)

2.1.3 实验室项目管理 (5)

2.1.4 栏目管理 (5)

2.1.5 会员管理 (5)

2.1.6 其它 (6)

2.2 网站前台功能需求 (6)

2.2.1 基本信息展示 (6)

2.2.2 会员中心 (6)

2.2.3 登录注册功能 (6)

2.2.4 收藏和评论功能 (6)

第3章概要设计 (7)

3.1 数据字典 (7)

3.2 功能模块设计 (7)

3.2.1 后台流程 (7)

3.2.2 内容管理 (8)

3.2.3 栏目管理 (9)

3.2.4 会员管理 (11)

第4章详细设计 (13)

4.1 用户功能设计与实现 (13)

4.1.1 用户注册功能 (13)

4.1.2 用户评论功能 (16)

4.1.3 会员中心 (17)

4.2 后台管理功能 (20)

4.2.1 栏目管理 (20)

4.2.2 权限设置 (23)

4.2.3 日志管理 (26)

4.2.4 防注入设置 (27)

结论 (29)

谢辞 (30)

参考文献 (31)

前言

随着社会的发展、信息技术的不断更新、计算机应用的迅猛发展、网络应用不断扩大,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(或昵称),用户同时可以回复别人的评论并且要有无限极回复功能。

第3章概要设计

3.1 数据字典

数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程5部分。其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构,数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。

数据项是不可再分的数据单位。对数据项的描述通常包括以下内容:数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系,数据项之间的联系}。

通过对本系统的分析,得出本系统的数据字典:

用户信息的描述项如表3-1所示。

表3-1 用户信息

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-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异步验证功能,验证不通过后即使提醒,方便重新输入。验证码验证通过后提交评论内容,程序会在数据库的评论表中插入一条数据,数据记录评论人、评论时间、被评论文章的相关信息等。

提交评论代码如下:

/*发表评论*/

public function comment(){

$catid = isset($_GET['catid']) ? intval($_GET['catid']) : '0';

$aid = isset($_GET['aid']) ? intval($_GET['aid']) : '0';

相关主题
相关文档
最新文档