基于PHP的在线考试系统的设计与实现
作者:王泽
来源:《科教导刊·电子版》2017年第32
        本系统采用B/S模式,借助浏览器就可以实现在线考试功能无需开发客户端,降低开发成本和维护成本。通过前端、后台服务器和MySQL数据库设计使用PHP作为开发语言实现在线考试各种功能人们通过浏览器就可以实现在线考试,不受地域时间的限制,增加考试的灵活性,大大的缩短了试卷打印评改试卷等漫长过程,使考试更加的公平、公正,颠覆传统考试模式。
        关键词 PHP 考试 设计
        中图分类号:TP311 文献标识码:A
        0引言
        在当今互联网高速发展的环境下,老师希望一个高效的考试流程,学生也希望自己的学习成果得到准确的检测。在线考试系统在这样的需求背景下出现。根据目前考试现状,在线考试
系统是未来发展的方向。
        1开发环境与需求分析
        1.1开发环境
        系统开发和运行环境为同一套环境,采用LNMP,在Linux系统下采用Nginx+MySql+PHP的这种WEB服务器架构目前最受欢迎,Linux目前最受欢迎的免费操作系统,Nginx高性能HTTP代理服务器,MySQL关系型数据库,PHP开源服务器脚本语言。四种均为开源软件、语言他们组合到一起形成一个免费、高性能、灵活性高的网站服务器。
        1.2需求分析
        用户模块:系统管理员对所有用户拥有增删改查功能,角管理系统默认新注册用户角为普通用户,系统管理员可以修改用户所属角,用户和角是多对一关系,模型管理(权限管理)不同角拥有对应的权限学生只能查看修改个人信息,教师角在拥有普通用户权限外还可以对考场和成绩进行管理。
        考试模块:考试模块主要由考场设计、科目管理、试题管理、试卷管理等四部分构成。考场设计可以对考场进行增删改操作,增加考场需要填写基本信息还需要绑定试卷、科目,考场和试卷为一对多关系。科目管理,科目下属有章节,每个科目对应多个章节,一个章节拥有多个知识点。试题管理,只有系统管理员拥有对试题的管理,可以对试题进行CURD操作,试题支持单个添加也可以通过csv文件批量导入,试题需要绑定知识点。试卷管理,目前试卷只支持手工组卷,组卷需要对试卷进行基础信息设置,比如满分、及格分数、考试时间等,试卷需要详细设置有哪些题型每个题型下面的题量以及每个试题的分数等。
        内容模块:内容模块下属分为分类管理和内容管理,在首页有两个板块对内容进行展示,分别是信息通告以及滚动图片,这两个分别为一个分类,内容管理即是对该板块下所展示的内容进行编辑管理,内容模块权限只有系统管理员独有。
        文件模块:文件模块有文件类型管理和文件管理,文件类型主要为当前系统所有的文件进行一个分类,文件管理即对当前系统所存在的媒体文件的一个管理,媒体文件包括系统Logo、背景图,以及试题里面的图片音频文件等。
        2系统架构
        系统采用B/S架构(浏览器/服务器),目前多数应用也是采用的B/S架构。互联网技术的兴起为B/S铺好道路,它基于对C/S架构的改进。在这种结构下,只要有浏览器就可以进入工作界面,借助前端实现系统和用户的数据交互极实现,主要的逻辑判断和数据处理还是在服务器端(Server)实现。
        3系统前台与后台设计
        3.1前台设计
        网站整体采用最常见的字型布局,顶部为登陆、注册、个人中心导航条,下方左侧为网站标识右侧为主菜单。接下来为首页的主要内容左右分列为信息通告和排行榜中下方为考场。最下面是网站的基本信息、版权等。这种布局的邮件是充分利用版面、页面结构清晰层次分明,信息量充足,与其余页面的链接切换方便。
        3.2后台设计
        整个后台主要划分为四个功能模块。用户:用户、权限、角以及基本配置管理。四个模块相互独立,模块直接协作通过共享API,达到软件工程开发的概念高内聚、低耦合。
        4系统主要功能实现
        4.1前台用户中心的实现
        用户中心只要由三个页面组成,个人信息展示、修改以及成绩查看页面。为避免代码冗余,左侧的菜单栏从三个页面中提取出来单独为一个文件。然后在需要的页面Include学生管理系统php该文件即可实现代码复用。在用户中心的信息管理页面中,我们利用Bootstrap中的一个JS插件实现滚动监听,通过对选项卡的点击触发窗口的过渡。我们只需要给用户资料和修改密码设置一个全局唯一的ID并且定义class="nav nav-tabs",在相应内容的DIV中也定义相同的IDclass="tab-pane"。这样就实现了滚动监听的效果。
        4.2后台登陆的实现
        系统后台登陆环节将后台和前台用户隔离,登陆在后台环节中至关重要。要实现登陆功能需要前台页面做数据交互,后台服务器处理业务逻辑,数据库存储用户信息。系统设计用户密码字段为六位字符及以上,由字母数字和特殊字符组成再进行MD5加密后储存在数据库。用户进行登陆操作时,将用户名和密码以及验证码输入网页表单,表单将数据提交到后
台,为防止非法用户暴力破解密码系统登陆采用验证码验证,用户进行登陆操作需要首先验证验证码是否正确,如果验证码错误WEB服务器将直接返回异常拒绝用户登陆。通过验证码验证后再将用户所输入的用户名去数据库中取出该用户的密码,将用户输入的密码进行MD5加密后同数据库查出的密码比对,如果一致说明用户名及密码正确登陆通过,如果不一致则不允许登陆。
        4.3文件上传的实现
        我们拿个人中心的头像上传为例,文件上传采用的一个开源工具类,通过POST请求我们将客户机的图片上传到服务器缓存区,我们通过程序从服务器的缓存区把需要的文件移动到服务器指定位置,为了避免中文编码问题和文件名不规范问题,我们会在file/attach/image/content下按照当前日期每天生成一个不同的文件夹。我们文件命名也有统一的规范就是用当前时间戳拼接上1000-9999的一个随机数,确保文件名不会重复。文件上传接口最终会返回上传的状态,成功时会返回succ和新文件绝对路径失败则返回fail
        5结语
        在线考试是一个需要长期关注的实用性课题,在互联网发展过程中我们需要紧跟步伐,在线考试也是一个大大的趋势,打破传统的局限超高的便利性和延展性,借助数据分析让学生的成绩在广阔的维度对标。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。