基于ThinkPHP框架的家教信息管理系统设计与实现
2018-09-26谢敏程适
谢敏 程适
摘要:大学生兼职家教信息市场混杂,为此提出运用ThinkPHP框架设计并实现一种基于MVC架构的快捷、共享的家教信息管理系统。分析了家教信息管理系统功能需求,阐述了信息系统数据库关系及信息安全防护。系统实现了模型-视图-控制器分离,极大提高了可维护性和扩展性。应用表明系统功能完善、界面友好、安全可靠。
关键词:家教信息管理系统;ThinkPHP;信息安全
DOI:10.11907/rjdk.181756
中图分类号:TP319
文献标识码:A文章编号:1672-7800(2018)007-0128-04
Abstract:Inviewofthegeneralizationanddisorderofthepart-timeinformationmarketforcollegestudents,aquickandsharedtutoringinformationmanagementsystembasedonMVCarchitecturebyusingThinkPHPframeworkwasproposed.Theaimofthissystemistoexplorethefunctionalrequirementsoftutoringinformationmanagementsystem,therelationshipbetweendatabasesofinformationsystem,andtheinformationsecurityprotectionintheusageprocessbyusers.Thesystemachievedtheseparationofmodel,view,andcontroller,greatlyimprovedthemaintainabilityandexpansibilityofthesystem.Afterdeveloping,testinganddeploying,thesystemwasprovedtobesafeandreliablewithcompletefunctions,friendlyinterface,andremarkableeffect.
KeyWords:tutoringinformationmanagementsystem;ThinkPHP;informationsecurity
0引言
随着社会竞争日益激烈,聘请家庭教师已成为提升学生竞争力的法宝。在美国的初、中等教育乃至高等教育中,有着与学校课堂教学同样系统化、成规模的家庭教师辅导学习。美国家教信息系统通过对家教的类型、被辅导者年龄、指导项目水平等信息进行严格的划分和筛选,以保证家教服务质量[1-2]。
国内家教信息系统大多应用于培训机构和兼职招聘网,其中参差不齐的家教信息同时出现在平台,信息筛选和家教定位存在很大的局限性。家教兼职信息浩如烟海,需求者很难甄别家教服务质量的优劣,大学生兼职期望待遇参考依据不强[3-4]。因此,建立一个大学生家教信息管理系统,对家教信息进行科学、合理的定位和统一管理非常必要。
本文对大学生家教信息管理系统进行了需求分析,运用ThinkPHP框架建立了一个安全可靠的大学生家教信息管理系统。家教供需双方可以在系统发布供需信息。可通过可视化操作添加管理模块,系统自动生成相应的数据表字段对数据表进行CRUD(增加、查询、更新、删除)操作,增强了系统的扩展性和灵活性。采用Apache图片重定向方法设置图片防盗链,基于数据输入检验抵御跨站脚本攻击,令牌机制解决表单重复提交以保证系统安全。
1关键技术
1.1MVC模式
MVC(Model-View-Controller)指模型-视图-控制器的软件架构模式。MVC模式把用户界面交互拆分到3个不同的角色中,使应用程序分成3个核心部件:模型(Model)、视图(View)、控制器(Controller)[5]。MVC模式如图1所示。
模型:负责数据封装、业务逻辑控制和记录数据变化。模型通常独立于视图和控制器,一个模型可为多个视图提供数据。
视图:用于呈现模型,以模型为载体将所得到的数据和程序状态展示给用户,并将用户界面的输入数据和请求传递给控制器和模型。
控制器:负责协调模型和视图。负责接收用户请求,将输入的请求解析反馈给模型和视图去完成用户请求。
1.2ThinkPHP架构
ThinkPHP框架是一个快速、兼容且简单的轻量级免费开源PHP开发框架,其结合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式,采用面向对象的开发模式和MVC模式,同时支持多种数据库和PDO(PHPDataObjects)扩展[5]。ThinkPHP框架包含了底层架构、兼容处理、基类库、模板引擎、缓存机制、插件机制、角色认证、表单处理等常用组件,很大程度上提高了家教信息管理系统的开发效率、可维护性、可拓展性和代码的可读性,降低了开发难度[6-7]。
2系统设计
2.1系统功能模块设计
通过对家教需求的分析,按照用户角色划分为大学学生用户、家长注册用户、系统管理员,每个角色具有基本的注册、登录、密码找回等功能。系统具有为大学生用户提供个人档案管理、家教信息申请、系统公告中心、常见问题中心和信息反馈功能;为家长提供个人信息管理、家教信息发布、操作中心、系统公告中心及信息反馈功能。系统管理员使用用户信息管理、角色权限管理、通信管理及自定义功能[8-11]。系统功能分配如图2所示。
2.1.1大学生用户
(1)个人档案管理。大学生用户在注册个人信息結束后,可通过个人档案管理模块进行查看和修改,同时可查看历史记录及家长评价,了解自身不足之处。
(2)家教信息申请。可通过该模块领取家教信息。
(3)系统公告中心。系统对每个注册用户设立公告通知,及时反馈家教申请,并通知一些重要的站内信息。
(4)常见问题中心。记录系统操作方法和注意事项,以及家长反馈的普遍问题供用户参考。
(5)信息反馈。在使用系统过程中存在的疑问和家教过程中遇到的困难均可通过该模块进行反馈。系统管理员可对问题作出在线解答,并在站内私信给用户。如果问题难以描述,用户可直接联系系统管理员。
2.1.2家长注册用户
(1)个人信息管理。展示用户注册信息。为保证信息的正确性,在不被审核的情况下不得随意修改个人资料。该模块对用户历史发布的家教信息统一排列,并结合参与家教的大学生用户反馈对其进行信用评分。
(2)家教信息发布。用户可在系统中填写家教信息单,详细说明家教需求,系统将记录这些信息并及时发布。
(3)系统公告中心。系统对每个用户设立公告通知,通知站内信息。一旦有大学生用户领取该用户需求,会将部分大学生用户信息通过站内私信发送给该用户进行筛选。
(4)常见问题中心。记录系统操作方法和注意事项,以及某个年级的家教参考价格。
(5)信息反馈。及时反馈系统使用过程中的问题及用户对家教的意见。
2.1.3系统管理员
(1)用户信息管理。系统管理员进入系统后可对注册用户信息进行管理,包括对注册用户进行基本信息修改、垃圾数据清理和身份核实。
(2)家教信息管理。该模块用于审核家教信息,对大学生用户进行信息匹配,通知双方签订家教协议书。
(3)角色权限管理。系统管理员可在自己权限之下建立子管理员,给对应子管理员分配比自身权限低的功能使用权,同时对注册用户权限进行限制,如某家长多次被大学生用户投诉,经过核实,系统管理员可对该家长限制发布需求甚至打入黑名单。
(4)通信管理。管理站内信息的发布与短信通知。系统管理员可处理注册用户的信息反馈,可通过短信发送重要通知。
(5)自定义功能。系统管理员可通过可视化添加需要管理的字段名和字段类型,一键生成数据库表和基本的CRUD操作,并在系统权限管理中参与管理,该功能极大满足了系统管理员的特殊需求。
2.2数据库设计
通过需求分析和功能模块设计,建立关于系统的不同实体、属性以及各实体的关联,用E-R图表示。抽象出各实体的关联关系,根据数据库范式标准去除冗余字段并对多对多关系建立中间表[12-13]。建立关系数据库并确定各关系模式的属性、关键字及完整性约束。系统部分E-R图如图3所示。
系统中的所有数据信息均记录在jf_tutor数据库中。该数据库表包括大学生信息表、家长信息表、系统管理员信息表、系统管理员操作日志表、附件信息表、权限分组表、权限规则表、系统配置表、家教信息表、系统公告表、常见问题表。大学生信息表jf_user的部分属性设置见表1。
3系统安全性
服务双方均希望保证自身信息的隐私性,因此系统的安全防护尤为重要。为此,系统采取Apache图片重定向方法设置图片防盗链,采用基于数据输入检验抵御跨站脚本攻击、令牌机制解决表单重复提交等方法保证系统安全[14-15]。
3.1Apache图片重定向方法设置图片防盗链
所谓盗链是指未经合法性认证授权,非法访问服务器内部资源借此谋取信息的方法[16]。Apache图片重定向方法设置图片防盗链就是基于对http报头的监听,针对所有服务器图片的请求进行过滤和重定向。对每一个http报头中的Referer进行筛选过滤。如果Referer指向的是非本站地址,就禁止访问图片资源并跳转入错误页面。
3.2基于数据输入检验抵御跨站脚本攻击
跨站脚本攻击是指用户将代码植入到提供给其它用户使用的页面从而谋取私利的过程[17]。通常将恶意代码输入系统保存,下次执行时将数据库中的恶意代码执行,从而使其他用户受到损害。对此,系统采取对用户的输入进行验证方式,验证所有输入数据的长度、类型、语法以及业务规则,保证数据源安全。
3.3令牌机制解决表单重复提交
表单重复提交指在用户提交数据时网络拥塞或用户蓄意访问服务器,导致用户数据提交错误和服务器资源浪费[18]。为此,系统采用设置令牌的方法解决该问题,当用户访问服务器资源时同时将一个加密的随机值返回给用户,并在Session中保存对应的随机值。在用户进行表单提交的同时将随机值提交,与Session中存放的值进行解密比对,两者相同则提交成功,否则驳回提交请求。表单机制运行过程如图4、图5所示。
4系统测试
系统测试是对整个系统开发的质量进行检测,本系统进行了数据测试和功能测试。数据测试主要是数据的正确性及关联性测试,功能检测则是通过模拟用户进行系统的功能完整性测试[19-20]。
4.1功能测试
用例测试部分结果如表2所示。
4.2运行效果
图6是系统部分主界面运行截图。
5结语
本文通过分析家教信息管理系统现状,结合高校大学生家教意愿以及家教需求分析,设计并实现了一个基于ThinkPHP框架的家教信息管理系统。该系统不仅简化了家教信息筛选过程,而且改善了供需双方的匹配度和信息安全性,最终保证了家教服务质量。系统采用MVC框架模式,将各个模块划分详细,完全满足高内聚、低耦合特性。使用ThinkPHP框架极大提高了系统的可维护性和扩展性,多种安全防护机制保证使用過程中的信息安全。对系统进行了功能测试和数据测试,以保证系统满足用户在功能和性能上的需求。
参考文献:
[1]韦永琼.美国中小学志愿家教现状初探[J].外国中小学教育,2010(5):42-58.
[2]韦永琼.美国课外家教辅导及其启示[J].江苏教育研究,2013(22):41-44.
[3]徐曼纯,王妙凤.大学生家教现状及问题分析[J].人才资源开发,2017(6):142-143.
[4]周彤,张力,马亚蓉,等.浅谈大学生家教现状及家教管理对其发展的影响[J].教育教学论坛,2014(39):159-160.
[5]王俊芳,李隐峰,王池.基于MVC模式的ThinkPHP框架研究[J].电子科技,2014,27(4):151-153,158.
[6]张文胜,陈宏.基于ThinkPHP模型的敏捷Web开发的应用与实践[J].软件工程,2016,19(3):45-48.
[7]田洋,陈红,卞振.基于PHP技术的网站设计及建设方式分析[J].赤峰学院学报:自然科学版,2017,33(13):6-7.
[8]刘浪.家教管理信息系统设计与实现[D].成都:电子科技大学,2012(6):16-24.
[9]黄敏,李志军,朱合隆,等.倾心家教O2O平台设计[J].科技广场,2017(7):178-184.
[10]刘淑英,邹燕飞,胡伟娟,等.基于PHP技术的家教信息平台的设计与实现[J].现代信息科技,2018(5):17-18.
[11]项永明.大学生家教系统的设计与实现[D].长春:吉林大学,2015.
[12]温立辉.关系数据库设计原理与分析[J].无线互联科技,2018,15(1):58-59.
[13]王建国.数据库设计在网站开发中的应用[J].山东农业工程学院学报,2017,34(4):158-159,164.
[14]刘智莹,朱程荣.基于PHP实现数据安全性的方法及比较[J].计算机工程与设计,2009,30(19):4387-4389,4392.
[15]王莎莎.基于ThinkPHP框架的网络安全攻防实训平台的设计与实现[D].北京:北京邮电大学,2017.
[16]郑绍辉,周明天.反盗链技术研究[J].计算机时代,2008(1):58-59.
[17]龚小刚,王红凯,夏威,等.跨站脚本攻击(XSS)的形成与利用研究[J].信息安全与技术,2015,6(3):52-55.
[18]高河福.令牌机制在B/S应用系统中表单重复提交问题的研究与应用[J].韩山师范学院学报,2011,32(6):49-53.
[19]肖路.Web应用系统功能测试研究与应用[D].重庆:重庆大学,2007.
[20]王文东.基于B/S架构的Web软件系统测试应用分析[J].软件导刊,2016,15(8):137-139.
(責任编辑:杜能钢)