使用PHPEMS6.1开源考试系统体验
介绍:
非常好用流行的一个在线考试系统使用手册,php开发,支持二次开发。强力的在线培训考试系统PHPEMS(PHP Exam Management System)在线模拟考试系统基于PHP+Mysql开发,支持多种题型和展现方式,是国内首款支持题冒题和手自动一体评分的PHP在线模拟考试系统。官网:http://www.phpems.net 项目地址(官网也可下载):https://github.com/phpems/phpems/
安装:
1、PHP环境,推荐使用集成环境(省事),各个组件都有,我用的是phpstudy,最新版本改名字:小皮系统,网址xp.cn;
2、需要注意:phpems官网给的安装环境建议是 运行环境:PHP5.3-7.0 MYSQL:5.5+,但我在实际使用中php版本需要排除 php5.6.9nts(发现使用这个版本在查看试卷时无法获取数据),在这边吃了大亏。
3、环境好了以后,创建数据库exam,导入sql文件,修改根目录下lib/config.inc.php 文件,输入网址即可访问。默认管理员用户名/密码:peadmin/peadmin
/** 数据库设置 */ define(\'SQLDEBUG\',1); define(\'DB\',\'exam\');//MYSQL数据库名 define(\'DH\',\'127.0.0.1\');//MYSQL主机名,不用改,如果数据库默认端口不是3306,在地址后加:端口号 define(\'DU\',\'root\');//MYSQL数据库用户名 define(\'DP\',\'root\');//MYSQL数据库用户密码 define(\'DTH\',\'x2_\');//系统表前缀,不用改
遇到问题:
1、管理界面->财务->代金券管理里,默认项目代码里,当代金券使用后是无法获取使用人和使用时间,需要修改代码如下:
通过 url找到payfor.tpl文件中 form标签中 action=”index.php?exam-app-basics-coupon” 找到 app/exam模块中找到basics-app控制器里coupon方法修改 useCouponById这个方法即可。
<form aria-hidden="true" id="myModal" method="post" class="modal fade" role="dialog" aria-labelledby="#myModalLabel" action="index.php?exam-app-basics-coupon"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button aria-hidden="true" class="close" type="button" data-dismiss="modal">×</button> <h4 class="modal-title" id="myModalLabel">代金券充值</h4> </div> <div class="modal-body" id="modal-body"> <div class="control-group"> <div class="controls"> <input type="text" class="form-control" name="couponsn" placeholder="请输入16位代金券号码" value="" needle="needle" msg="请输入16位代金券号码"/> </div> </div> </div> <div class="modal-footer"> <input name="coupon" type="hidden" value="1"> <button class="btn btn-primary" type="submit">充值</button> </div> </div> </div> </form>
最终找到app\bank\cls coupon.cls.php这个文件修改如下:
public function useCouponById($id,$userid) { $r = $this->getCouponById($id); if(!$r)return false; if($r[\'couponstatus\']) return 301; elseif($r[\'couponendtime\'] < TIME) return 302; else { $user = $this->G->make(\'user\',\'user\'); if($r[\'couponvalue\'] < 0)$r[\'couponvalue\'] = 0; $u = $user->getUserById($userid); $coin = $u[\'usercoin\'] + $r[\'couponvalue\']; $args = array(\'usercoin\' => $coin); $user->modifyUserInfo($userid,$args); $args = array(\'couponstatus\' => 1,\'couponusername\' => $u[\'username\'],\'couponusetime\' => TIME); //新增插入用户名和完成时间 $data = array(\'coupon\',$args,array(array("AND","couponsn = :couponsn",\'couponsn\',$id))); $sql = $this->pdosql->makeUpdate($data); $this->db->exec($sql); return 200; } }
2、就是安装问题,PHP版本排除使用php5.6.9nts版本;
3、建议:专题模块要是能提供下专题模板就好了,当然如果懂点前端和后端开法,可以自定义。
总结:
总体非常感谢phpems将自己辛苦开发的项目,开发给我们使用,这个系统简化了我们很多工作!