一、账户登录
1.SDYY大学普通话考试报名系统的账户为学号,不能自行注册,其中默认密码ZYY#身份证后6位,X大写;
2.输入学号和系统默认密码登录,建议登录后马上修改自己的密码,防止信息泄露;
3.如忘记密码,请联系系统管理员,重新设置;
二、信息认证
1.注册状态,由系统管理员导入完成,能登录即表明已完成该状态;
2.身份认证,系统核对姓名、性别、民族和身份证号,如非实名,则无法提交;
3.基础信息,所在学院、班级、CET状态、联系电话和证件照,用于生成准考证;
4.费用缴纳,考生扫描条码后,系统会自动认证,一经认证,基础信息无法修改;
5.准考制证,系统根据审核情况,进行自动制证。生成后,可打开下载或打印
/*强制弹出修改密码*/if (user_agree == "0") {getConfirm('?m=Index&a=userBind', '90%', '90%', 'no', '首次登录绑定手机');}//确认协议弹出模态框
function getConfirm(url, width, height, pop, title) {layer.open({type: 2,fix: false,shade: 0.6,title: title,maxmin: false,area: [width, height],closeBtn: 0,shadeClose: false,anim: 3,isOutAnim: true,content: [url, pop]});
}
var stepData = [{'title': "注册用户",links:"#", "desc": "2022-11-12 00:00:00"},{'title': "身份认证",links:"?m=Index&a=infomationIdentity&act=showIdentity", "desc": "2022-11-12 00:00:00"},{'title': "报名信息",links:"?m=Index&a=infomationEdit&act=showInfo", "desc": "2022-11-12 00:00:00"},{'title': "费用缴纳",links:"?m=Index&a=infomationPay", "desc": "2022-11-12 00:00:00"},{'title': "下载准考证",links:"?m=Index&a=infomationExam&act=showExam", "desc": "2022-11-12 00:00:00"}];$.ajax({type: "get",url: "api/api.php?act=getUserStatus&token=3cab7ce4142608c0f40c785b5ab5ca24",async: true,data: {},dataType: "json",success: function (res) {var data = res.data[0]['user_status'];//更新状态steps.make(stepData, '#steps', data);}});
多用户系统,使用user_id数字时,容易明文越权,即通过手动修改user_id,可访问不同用户的信息,为了保证用户信息的私密性和完整性,需要对用户信息进行越权控制。
即用户登录后,将user_id设置为cookie,在后台处理时,默认传参。
$user_id = AuthCode($_COOKIE['db_id'], 'DECODE', '', '');
将user_id加密,后台解密,实现参数的密文传参。
m=Index&a=indexDeal&act=preview&user_id=6d0ed7O1wKrWZ8uLeIV3Q8wymU8EUzlCcuwI4CBAtvqf
。由于生成的密钥,默认带+,带url传参的时候,系统会默认将+转为空格,因此在get方法获取user_id时,需要将空格替换为+.
$sys_id = str_ireplace(' ', '+', get_param('user_id'));//未解码
$user_id = AuthCode($sys_id, 'DECODE', '', '');//已解码
在后台读取数据库记录,如果为空,直接跳转到信息提示页。
$row = $db->fetch($current_table, '*', array('user_id' => $user_id), ' user_id DESC');if (!$row) {redirect('?m=Index&a=tips&act=tips&tips_id=7');}
调用echarts展示各个学院的报名情况(未报名、已报名)
//发送短信;case "sendSms";$user_id = $_POST['user_id'];//var_dump($user_id);if (is_array($user_id)) {//循环发送信息;for ($i = 0; $i < count($user_id); $i++) {$row = $db->fetch($current_table, 'user_name,user_sms,user_phone', array('user_id' => $user_id[$i]), ' user_id DESC');if ($row['user_phone'] == NULL || $row['user_phone'] == "") {$res['code'] = 0;$res['msg'] = $row['user_name'] . "手机号码有误,无法发送";die(json_encode_lockdata($res));}//发送短信 TODO//更新发送短信次数$user_sms = $row['user_sms'] + 1;$db->update($current_table, array('user_sms' => $user_sms), array('user_id' => $user_id[$i]));}$res['code'] = 1;$res['msg'] = "短信发送成功";die(json_encode_lockdata($res));} else {$row = $db->fetch($current_table, 'user_name,user_sms,user_phone', array('user_id' => $user_id), ' user_id DESC');if ($row['user_phone'] == NULL || $row['user_phone'] == "") {$res['code'] = 0;$res['msg'] = $row['user_name'] . "手机号码有误,无法发送";die(json_encode_lockdata($res));}//发送短信 TODO//更新发送短信次数$user_sms = $row['user_sms'] + 1;$db->update($current_table, array('user_sms' => $user_sms), array('user_id' => $user_id));$res['code'] = 1;$res['msg'] = $row['user_name'] . ",短信发送成功";die(json_encode_lockdata($res));}break;
//一键审核;case "sendVerify";$user_id = $_POST['user_id'];//var_dump($user_id);if (is_array($user_id)) {//循环发送信息;for ($i = 0; $i < count($user_id); $i++) {$row = $db->fetch($current_table, 'user_name,user_sms,user_phone', array('user_id' => $user_id[$i]), ' user_id DESC');$db->update($current_table, array('user_verify' => 2), array('user_id' => $user_id[$i]));}$res['code'] = 1;$res['msg'] = "报名审核成功";die(json_encode_lockdata($res));} else {$row = $db->fetch($current_table, 'user_name,user_sms,user_phone', array('user_id' => $user_id), ' user_id DESC');$db->update($current_table, array('user_verify' => 2), array('user_id' => $user_id));$res['code'] = 1;$res['msg'] = $row['user_name'] . ",短信发送成功";die(json_encode_lockdata($res));}break;
为了提高系统的复合利用率,系统增加了数据分表。即:不同批次的学生报名时,切换数据表,当前使用的为当期的。
config.table.php
'2024'];
//切换数据分表;case "sendVerify";$tb_name = $_POST['tb_name'];if ($tb_name == "") {$res['code'] = 0;$res['msg'] = "未选择数据表";die(json_encode_lockdata($res));} else {//生成数据分表的配置文件config.table.php$config_table = " '" . $tb_name . "'];";@file_put_contents('conf/config.table.php', $config_table);//更新状态码;$db->update('subtables', array('tb_use' => 0), array(''));$db->update('subtables', array('tb_use' => 1), array('tb_name' => $tb_name));//操作日志;addlogs($_COOKIE["admin_name"], $tb_name . '切换数据分表,STATUS:OK', '', time(), getip());$res['code'] = 1;$res['msg'] = "数据分表切换成功";die(json_encode_lockdata($res));}break;
case "add";$tb_name = $_POST['tb_name'];$tb_times = time();$row = $db->fetch('subtables', '*', array('tb_name' => trim(addslashes($tb_name))), ' tb_id DESC');if ($row) {$res['code'] = 0;$res['msg'] = "数据表名已存在,请更换名称。";die(json_encode_lockdata($res));}//创建数据;$db->insert('subtables', array('tb_name' => $tb_name, 'tb_use' => 0, 'tb_times' => $tb_times));//创建分表;$sql = "CREATE TABLE IF NOT EXISTS `" . $CONF['db_prefix'] . 'user_' . $tb_name . "` (`user_id` int(11) NOT NULL,`user_ticket` varchar(64) DEFAULT NULL COMMENT '学号',`user_phone` varchar(32) DEFAULT NULL COMMENT '手机',`user_name` varchar(32) DEFAULT NULL COMMENT '姓名',`user_pwd` varchar(64) DEFAULT NULL COMMENT '密码',`user_gender` varchar(32) DEFAULT NULL COMMENT '性别',`user_nation` varchar(32) DEFAULT NULL COMMENT '民族',`user_cet` varchar(32) DEFAULT NULL COMMENT '四六级',`user_card` varchar(32) DEFAULT NULL COMMENT '身份证',`user_campus` varchar(64) DEFAULT NULL COMMENT '所在校区',`major_id` int(11) DEFAULT '0' COMMENT '学院Id',`user_work` varchar(255) DEFAULT NULL COMMENT '学院',`user_class` varchar(32) DEFAULT NULL COMMENT '班级',`user_time` int(11) DEFAULT NULL COMMENT '注册时间',`user_photo` varchar(255) DEFAULT NULL COMMENT '证件照',`user_sms` int(2) DEFAULT '0' COMMENT '短信发送次数',`user_verify` int(2) DEFAULT '0' COMMENT '0未报名1已报名2已审核',`user_pay` int(2) DEFAULT '0' COMMENT '0未交费1已缴费',`user_status` int(2) DEFAULT '0' COMMENT '1已注册2已认证3已完善4已缴费5已通过',`user_ip` varchar(255) DEFAULT NULL COMMENT 'ip',`user_agree` int(2) NOT NULL DEFAULT '0' COMMENT '0未验证1已验证',`user_period` varchar(64) DEFAULT NULL COMMENT '用户批次',`user_salt` varchar(64) DEFAULT NULL,`user_city` varchar(32) DEFAULT NULL COMMENT '地级市',`user_area` varchar(32) DEFAULT NULL COMMENT '地区',`user_province` varchar(32) DEFAULT NULL COMMENT '省份',`exam_no` varchar(255) DEFAULT NULL COMMENT '准考证号',`exam_times` varchar(255) DEFAULT NULL COMMENT '考试时间',`exam_place` varchar(255) DEFAULT NULL COMMENT '考试地点',`exam_class` varchar(255) DEFAULT NULL COMMENT '考场号',`exam_seat` varchar(255) DEFAULT NULL COMMENT '座位号',`exam_prepare` varchar(255) DEFAULT NULL COMMENT '备考室',`exam_notice` text COMMENT '考生须知') ENGINE=InnoDB AUTO_INCREMENT=4457 DEFAULT CHARSET=utf8 COMMENT='信息表';";$row = $db->queryall($sql);$res['code'] = 1;$res['msg'] = "数据分表创建成功,请在conf/config中配置切换";die(json_encode_lockdata($res));//操作日志;addlogs($_COOKIE["admin_name"], $tb_name . '数据分表创建,STATUS:OK', '', time(), getip());break;
//删除数据分表;case "del";$tb_id = get_param('tb_id');$tb_name = get_param('tb_name');if (is_array($tb_id)) {$tb_id = implode(",", $tb_id);}if ($tb_id == '') {die("tb_id错误");}//删除记录;$db->delete('subtables', 'tb_id in(' . $tb_id . ')');//删除数据表;$sql = "DROP TABLE IF EXISTS " . $CONF['db_prefix'] . $tb_name;$row = $db->queryall($sql);//操作日志;addlogs($_COOKIE["admin_name"], $tb_id . '数据分表删除,STATUS:OK', '', time(), getip());break;
@漏刻有时
上一篇:pytorch学习
下一篇:MFCC语音特征值提取算法