示例#1
0
 if (!$_POST['tablename']) {
     $msgs = "请选择要备份的数据表";
     echo jsalert($msgs, "backup.php");
     exit;
 }
 if (!$_POST['fenjuan']) {
     //不分卷
     $sql = make_header($_POST['tablename']);
     $db->query("select * from " . $_POST['tablename']);
     $num_fields = $db->nf();
     while ($db->nextrecord()) {
         $sql .= make_record($_POST['tablename'], $num_fields);
     }
     $filename = date("Ymd", time()) . "_" . $_POST['tablename'] . ".sql";
     if ($_POST['weizhi'] == "localpc") {
         down_file($sql, $filename);
     } elseif ($_POST['weizhi'] == "server") {
         if (write_file($sql, $filename)) {
             $msgs = "表-" . $_POST['tablename'] . "-数据备份完成,生成备份文件./backup/{$filename}";
         } else {
             $msgs = "备份表-" . $_POST['tablename'] . "-失败";
         }
         echo jsalert($msgs, "backup.php");
         exit;
     }
 } else {
     //分卷备份
     if (!$_POST['filesize']) {
         $msgs = "请填写备份文件分卷大小";
         echo jsalert($msgs, "backup.php");
         exit;
示例#2
0
function get_parser()
{
    $conf = configurations();
    if (!$_GET) {
        return user_page_display($_SESSION['db_data']['user'], $_SESSION['db_data']['lvl'], 'listprojects');
    }
    if (isset($_GET['mod'])) {
        if (is_array(myfilter($_GET['mod'], 'mod'))) {
            trigger_error('potential attack using mod');
            return deconnect();
        } else {
            $mod = $_GET['mod'];
        }
    } else {
        $mod = null;
    }
    switch ($_GET['action']) {
        case 'adduser':
            if (admin(true)) {
                if ($_POST['usr_email'] && $_POST['username']) {
                    return user_page_display($_SESSION['db_data']['user'], $_SESSION['db_data']['lvl'], 'adduser', add_user(myfilter($_POST['usr_email'], 'email'), myfilter($_POST['username'], 'user'), myfilter($_POST['lvl'], 'lvl')));
                }
                return user_page_display($_SESSION['db_data']['user'], $_SESSION['db_data']['lvl'], 'adduser');
            }
            break;
        case 'listusers':
            if (admin(true)) {
                $list_users = list_users(array(null));
                return user_page_display($_SESSION['db_data']['user'], $_SESSION['db_data']['lvl'], 'listusers', $list_users);
            }
            break;
        case 'deco':
            return deconnect();
            break;
        case 'modpass':
            if ($_POST['oldpass'] && $_POST['password1'] && $_POST['password2']) {
                $pass = array(myfilter($_POST['oldpass'], 'password'), myfilter($_POST['password1'], 'password'), myfilter($_POST['password2'], 'password'));
                if (is_string($pass[0]) && is_string($pass[1]) && is_string($pass[2])) {
                    $change = change_password($_SESSION['db_data']['_id'], $pass);
                    return user_page_display($_SESSION['db_data']['user'], $_SESSION['db_data']['lvl'], 'changepass', $change);
                }
            }
            return user_page_display($_SESSION['db_data']['user'], $_SESSION['db_data']['lvl'], 'changepass', null);
            break;
        case 'resetpass':
            if (isset($_GET['user_id']) && isset($_GET['resetcode']) && !is_array($_GET['user_id']) && !is_array($_GET['resetcode'])) {
                return reset_password($_GET['user_id'], $_GET['resetcode']);
            } elseif (isset($_GET['user_id']) && !is_array($_GET['user_id']) && admin(true)) {
                return user_page_display($_SESSION['db_data']['user'], $_SESSION['db_data']['lvl'], 'edit_user', reset_password($_GET['user_id']));
            }
            break;
        case 'edituser':
            if (isset($_GET['user_id'])) {
                if (user(true) && $_GET['user_id'] == $_SESSION['db_data']['_id']) {
                    return user_page_display($_SESSION['db_data']['user'], $_SESSION['db_data']['lvl'], 'edit_user', change_user_data($_SESSION['db_data']));
                }
                if (admin(true) && !is_array($_GET['user_id'])) {
                    return user_page_display($_SESSION['db_data']['user'], $_SESSION['db_data']['lvl'], 'edit_user', change_user_data(check_user(array('_id' => new MongoID(myfilter($_GET['user_id'], '_id'))))));
                }
            }
            break;
        case 'changemail':
            if (isset($_GET['user_id']) && isset($_GET['code'])) {
                $db = check_user(array('_id' => new MongoID(myfilter($_GET['user_id'], '_id'))));
                if ($db['mail_change_id'] == $_GET['code']) {
                    return change_email_user(array('email' => $db['new_mail'], 'new_mail' => null, 'mail_change_id' => null), myfilter($_GET['user_id'], '_id'), 'postmail');
                }
            }
            break;
        case 'deluser':
            if (admin(true) && !is_array($_GET['user_id'])) {
                return delete_user(myfilter($_GET['user_id'], '_id'));
            }
            break;
        case 'addproject':
            if (admin(true)) {
                return user_page_display($_SESSION['db_data']['user'], $_SESSION['db_data']['lvl'], 'add_project', addproject());
            }
            break;
        case 'project':
            if (isset($_GET['project_id'])) {
                if (!is_array(myfilter($_GET['project_id'], '_id'))) {
                    $_SESSION['currentprojet'] = myfilter($_GET['project_id'], '_id');
                    return user_page_display($_SESSION['db_data']['user'], $_SESSION['db_data']['lvl'], 'project', check_projects_mod($mod));
                }
            }
            break;
        case 'getfile':
            if (isset($_GET['file']) && isset($_GET['key']) && isset($_GET['id']) && isset($_GET['os']) && isset($_GET['arch'])) {
                if (!is_array(myfilter($_GET['file'], 'sha1')) && !is_array(myfilter($_GET['key'], 'timestamp')) && !is_array(myfilter($_GET['id'], '_id')) && !is_array($_GET['os']) && !is_array($_GET['arch'])) {
                    return down_file(myfilter($_GET['file'], 'sha1'), myfilter($_GET['key'], 'timestamp'), base64_decode(urldecode($_GET['os'])), base64_decode(urldecode($_GET['arch'])), myfilter($_GET['id'], '_id'));
                }
            }
            break;
        case 'addfile':
            if (admin(true) && isset($_GET['id'])) {
                if (!is_array(myfilter($_GET['id'], '_id'))) {
                    return user_page_display($_SESSION['db_data']['user'], $_SESSION['db_data']['lvl'], 'add_file', addfile(myfilter($_GET['id'], '_id')));
                }
            }
            break;
        case 'deletefile':
            if (admin(true) && isset($_GET['id']) && isset($_GET['key'])) {
                if (!is_array(myfilter($_GET['id'], '_id')) && !is_array(myfilter($_GET['key'], 'timestamp'))) {
                    return user_page_display($_SESSION['db_data']['user'], $_SESSION['db_data']['lvl'], 'project', delete_file(myfilter($_GET['id'], '_id'), myfilter($_GET['key'], 'timestamp')));
                }
            }
            break;
        case 'usersetting':
            if (isset($_GET['user_id'])) {
                if (user(true) && $_GET['user_id'] == $_SESSION['db_data']['_id']) {
                    return user_page_display($_SESSION['db_data']['user'], $_SESSION['db_data']['lvl'], 'setting', change_user_setting($_SESSION['db_data']['_id']));
                }
            }
            break;
        case 'bug':
            if (isset($_GET['id'])) {
                if (!is_array(myfilter($_GET['id'], '_id'))) {
                    return user_page_display($_SESSION['db_data']['user'], $_SESSION['db_data']['lvl'], 'bug', check_bug($mod));
                }
            }
            break;
        case 'submitbug':
            if (isset($_GET['id'])) {
                if (user(true) && in_array($_GET['id'], $_SESSION['db_data']['projects'])) {
                    $_SESSION['idbug'] = $_GET['id'];
                    return user_page_display($_SESSION['db_data']['user'], $_SESSION['db_data']['lvl'], 'submitbug', add_bug($_POST, $_GET['id']));
                }
                if (admin(true) || vip(true)) {
                    if (!is_array(myfilter($_GET['id'], '_id'))) {
                        $_SESSION['idbug'] = $_GET['id'];
                        return user_page_display($_SESSION['db_data']['user'], $_SESSION['db_data']['lvl'], 'submitbug', add_bug($_POST, $_GET['id']));
                    }
                }
            }
            break;
        case 'listprojects':
            return user_page_display($_SESSION['db_data']['user'], $_SESSION['db_data']['lvl'], 'listprojects', $mod);
            break;
        case 'editbug':
            if (strlen($_POST['status']) && isset($_GET['id']) && admin(true)) {
                if (!is_array($_POST['status']) && !is_array(myfilter($_GET['id'], '_id'))) {
                    if (in_array($_POST['status'], $conf['bugs']['Open']) || in_array($_POST['status'], $conf['bugs']['Closed'])) {
                        return user_page_display($_SESSION['db_data']['user'], $_SESSION['db_data']['lvl'], 'bug', edit_bug($_POST['status']));
                    }
                }
            }
            break;
        case 'resetpassmail':
            if (strlen($_POST['usr_email'])) {
                return echo_front_page(reset_password_mail(myfilter($_POST['usr_email'], 'email')));
            }
            break;
        case 'editproject':
            if (isset($_GET['id']) && admin(true)) {
                if (!is_array(myfilter($_GET['id'], '_id'))) {
                    return user_page_display($_SESSION['db_data']['user'], $_SESSION['db_data']['lvl'], 'edit_project', edit_project($_POST));
                }
            }
            break;
    }
    return echo_front_page();
}
    public function receipt()
    {
        $ac = I('ac', 'phydata');
        if ($ac == 'down' && IS_POST && $this->class_num != '0') {
            $stuScoreList = D('StudentScore')->get_phyinfos($this->school_year, $this->town_id, $this->school_code, $this->school_grade, $this->class_num, 'school_code', 'down');
            $stuScoreList = $stuScoreList['list'];
            if (!$stuScoreList) {
                $this->error('无体质数据');
            }
            $gradeList = session('gradeList');
            $dictList = session('dictList');
            //导入时间
            if ($this->school_year >= 2014) {
                $import_detail_t = 'import_detail_new';
            } else {
                $import_detail_t = 'import_detail';
            }
            if ($stuScoreList) {
                foreach ($stuScoreList as $k => $v) {
                    $stuScoreList[$k]['grade_name'] = $gradeList[$v['school_grade']];
                    if ($v['is_avoid'] == 1) {
                        $stuScoreList[$k]['total_score'] = '免体';
                        $stuScoreList[$k]['score_level'] = '免体';
                        $stuScoreList[$k]['total_score_ori'] = '免体';
                        $stuScoreList[$k]['score_level_ori'] = '免体';
                    } else {
                        $stuScoreList[$k]['score_level'] = $dictList['203'][$v['score_level']]['dict_name'];
                        $stuScoreList[$k]['score_level_ori'] = $dictList['203'][$v['score_level_ori']]['dict_name'];
                        $stuScoreList[$k]['total_score'] = round($v['total_score']);
                        $stuScoreList[$k]['total_score_ori'] = round($v['total_score_ori']);
                        $stuScoreList[$k]['stuItemScoreList'] = D('ItemScore')->get_info_list($v['partition_field'], $v['year_score_id']);
                        if (!$stuScoreList[$k]['stuItemScoreList']) {
                            $this->error('没有找到该生体质健康成绩信息~');
                        }
                        //xt,zs,item
                        $xt = array();
                        $zs = array();
                        $item = array();
                        foreach ($stuScoreList[$k]['stuItemScoreList'] as $k2 => $v2) {
                            if (intval($v2['item_id']) == 0 || $v2['kind_id'] == '') {
                                continue;
                            }
                            //各项目评定
                            if ($v2['score_level']) {
                                $v2['score_level'] = substr($v2['score_level'], 0, 3) == '205' ? $dictList['205'][$v2['score_level']]['dict_name'] : $dictList['203'][$v2['score_level']]['dict_name'];
                            } else {
                                $v2['score'] = '未检查';
                            }
                            if (in_array($v2['kind_id'], array('jn', 'xt'))) {
                                array_push($xt, $v2);
                            } elseif ($v2['kind_id'] == 'zs') {
                                array_push($zs, $v2);
                            } else {
                                array_push($item, $v2);
                            }
                        }
                        $stuScoreList[$k]['stuItemScoreList'] = array();
                        $stuScoreList[$k]['stuItemScoreList']['xt'] = $xt;
                        $stuScoreList[$k]['stuItemScoreList']['zs'] = $zs;
                        $stuScoreList[$k]['stuItemScoreList']['item'] = $item;
                        foreach ($stuScoreList[$k]['stuItemScoreList']['item'] as $key => $val) {
                            if ($val['item_id'] == '08' && intval($val['score']) == 0) {
                                $stuScoreList[$k]['stuItemScoreList']['item'][$key]['score'] = '';
                            }
                        }
                    }
                    //导入时间
                    $import_log = D($import_detail_t)->get_detail_info($v['partition_field'], $v['import_detail_id']);
                    if (is_object($import_log['import_time'])) {
                        $impTimeObj = object2array($import_log['import_time']);
                        $import_time = date('Y-m-d H:i:s', strtotime($impTimeObj['date']));
                    } else {
                        $import_time = date('Y-m-d H:i:s', strtotime($import_log['import_time']));
                    }
                    $stuScoreList[$k]['import_time'] = $import_time;
                    if ($import_log) {
                        //操作人
                        $login_name = D('SysUser')->where('user_id = ' . $import_log['user_id'])->getField('login_name');
                        if (!$login_name) {
                            $login_name = D('School')->alias('s')->join('LEFT JOIN sys_user u ON u.org_schoolcode = s.school_code')->where('s.school_id = ' . $import_log['user_id'])->getField('u.login_name');
                        }
                        $stuScoreList[$k]['login_name'] = $login_name;
                    }
                }
            }
            //输出文件
            $filename = $stuScoreList[0]['town_name'] . '_' . $stuScoreList[0]['school_name'] . '_' . $stuScoreList[0]['grade_name'] . '_' . $stuScoreList[0]['class_name'] . '体质数据';
            $filename = urlencode($filename);
            header("Content-type: application/octet-stream; ");
            header("Content-Disposition:   attachment;   filename=" . $filename . ".html");
            $html = @file_get_contents($_SERVER['DOCUMENT_ROOT'] . '/Public/template/printHeader.html');
            foreach ($stuScoreList as $key => $val) {
                if ($key % 6 == 0) {
                    $html .= '<h2 style="margin-top:20px">体质数据打印单</h2>';
                }
                $html .= '
					<table width="100%" cellpadding="5" cellspacing="1" border="0" bgcolor="#8ACBEE" class="tableStyle" style="margin-top:10px;">
					  <tr>
						<td width="7%"  height="25" align="right" bgcolor="#A6D8F1">姓名:</td>
						<td width="10%" bgcolor="#D0EBF6">' . $val['name'] . '</td>
						<td width="10%" align="right" bgcolor="#A6D8F1">综合成绩:</td>
						<td width="5%" bgcolor="#D0EBF6">' . $val['total_score'] . '</td>
						<td width="10%"  align="right" bgcolor="#A6D8F1">综合评定:</td>
						<td width="7%" bgcolor="#D0EBF6">' . $val['score_level'] . '</td>

						<td width="10%" align="right" bgcolor="#A6D8F1">测试成绩:</td>
						<td width="5%" bgcolor="#D0EBF6">' . $val['total_score_ori'] . '</td>
						<td width="10%"  align="right" bgcolor="#A6D8F1">测试成绩评定:</td>
						<td width="7%" bgcolor="#D0EBF6">' . $val['score_level_ori'] . '</td>
						<td width="10%" align="right" bgcolor="#A6D8F1">附加分数:</td>
						<td width="5%" bgcolor="#D0EBF6">' . $val['addach_score'] . '</td>
					  </tr>
					</table>';
                if ($val['stuItemScoreList']['xt']) {
                    $html .= '<table width="100%" cellpadding="5" cellspacing="1" border="0" bgcolor="#8ACBEE" class="tableStyle"><tr>';
                    foreach ($val['stuItemScoreList']['xt'] as $xt) {
                        $html .= '
							<td  align="right" bgcolor="#A6D8F1">' . $xt['item_name'] . ':</td>
							<td  bgcolor="#D0EBF6">';
                        if ($xt['exam_result'] > 0) {
                            $html .= $xt['exam_result_display'];
                        }
                        if ($xt['score'] > 0) {
                            $html .= '(' . $xt['score'] . ' ' . $xt['score_level'] . ')';
                        }
                        //else $html .= '未检查';
                        $html .= '</td>';
                    }
                    $html .= '</tr></table>';
                }
                if ($val['stuItemScoreList']['zs']) {
                    $html .= '<table width="100%" cellpadding="5" cellspacing="1" border="0" bgcolor="#8ACBEE" class="tableStyle"><tr>';
                    foreach ($val['stuItemScoreList']['zs'] as $zs) {
                        $html .= '<td  align="right" bgcolor="#A6D8F1">' . $zs['item_name'] . ':</td>
						<td  bgcolor="#D0EBF6">' . $zs['exam_result'];
                        if ($zs['score'] > 0) {
                            $html .= '(' . $zs['score'] . ' ' . $zs['score_level'] . ')';
                        }
                        $html .= '</td>';
                    }
                    $html .= '</tr></table>';
                }
                if ($val['stuItemScoreList']['item']) {
                    $html .= '<table width="100%" cellpadding="5" cellspacing="1" border="0" bgcolor="#8ACBEE" class="tableStyle"><tr>';
                    foreach ($val['stuItemScoreList']['item'] as $item) {
                        $html .= '<td  align="right" bgcolor="#A6D8F1">' . $item['item_name'] . ':</td><td  bgcolor="#D0EBF6">' . $item['exam_result_display'];
                        $html .= '(' . $item['score'] . ' ' . $item['score_level'] . ')';
                        $html .= '</td>';
                    }
                    $html .= '</tr></table>';
                }
                $html .= '<table width="100%" cellpadding="5" cellspacing="1" border="0" bgcolor="#8ACBEE" class="tableStyle"><tr bgcolor="#A6D8F1"><td >导入时间:' . $val['import_time'] . '</td><td>操作人:' . $val['login_name'] . '</td></tr><tr><td style="line-height:32px;">家长签字:____________________</td><td>签收日期:</td></tr></table><br /><hr><br />';
                if ($key % 6 == 5) {
                    $html .= '<div style="page-break-before:always"></div>';
                }
            }
            $html .= "</body></html>";
            echo $html;
            fclose($html);
            exit;
            //下载学校上传的文件
        } elseif ($ac == 'import_log') {
            $import_id = I('id', 0);
            $loginfo = D('ImportLog')->where('import_id = %d', $import_id)->find();
            if (empty($loginfo)) {
                $this->error('导入信息为空!');
            }
            //下载文件
            //clearstatcache();//清除文件状态缓存
            //if(is_file($_SERVER['DOCUMENT_ROOT'] . $file_path) == false)$this->error('文件不存在!');
            //echo $loginfo['file_name'];exit();
            down_file($loginfo['file_name'], $loginfo['file_path'], 'application/vnd.ms-excel');
        } else {
            $this->web_title = '下载学生体质成绩回执单';
            $this->page_template = "Down:receipt";
        }
    }