Example #1
0
 public function download_excel()
 {
     $this->verify_content_prms(array('_action' => 'show_result'));
     $feedback_id = $this->input['fid'];
     if (!$feedback_id) {
         $this->errorOutput(NO_FEEDBACK_ID);
     }
     $person = array();
     $condition = $this->get_condition();
     $sql = "SELECT * FROM " . DB_PREFIX . "record_person rp  WHERE rp.feedback_id IN(" . $feedback_id . ")" . $condition;
     $person = $this->db->fetch_all($sql);
     if ($person && count($person) > 0) {
         foreach ($person as $k => $v) {
             $fid[] = $v['id'];
         }
         $fids = implode(',', $fid);
     }
     if ($fids) {
         $forms = $this->mode->get_forms($feedback_id);
         if ($forms && is_array($forms)) {
             foreach ($forms as $k => $v) {
                 $form_name[$v['type']][$v['id']] = $v['name'];
             }
         }
         $form_ids = array();
         $sql = 'SELECT * FROM ' . DB_PREFIX . 'materials WHERE content_id = ' . $feedback_id;
         $q = $this->db->query($sql);
         while ($rs = $this->db->fetch_array($q)) {
             if ($rs['vodid']) {
                 if ($this->settings['App_mediaserver']) {
                     $rs['url'] = $this->settings['App_mediaserver']['protocol'] . $this->settings['App_mediaserver']['host'] . '/' . $this->settings['App_mediaserver']['dir'] . '/admin/download.php?id=' . $rs['vodid'];
                 } else {
                     $rs['url'] = $rs['host'] . '/' . $rs['dir'] . $rs['filename'] . '.mp4';
                 }
             }
             if ($rs['original_id']) {
                 $rs['url'] = hg_material_link($rs['host'], $rs['dir'], $rs['material_path'], $rs['pic_name']);
             }
             $mat[$rs['id']] = $rs['url'];
         }
         $sql = "SELECT r.*,f.title,f.brief FROM " . DB_PREFIX . "record r LEFT JOIN " . DB_PREFIX . "feedback f ON r.feedback_id = f.id WHERE r.person_id in( " . $fids . ") ORDER BY r.order_id desc";
         $q = $this->db->query($sql);
         while ($r = $this->db->fetch_array($q)) {
             $rec['title'] = $r['title'];
             $rec['brief'] = $r['brief'];
             if ($r['type'] == 'file') {
                 $r['type'] = 'standard';
                 $fvalue = trim($r['value'], ',');
                 if ($fvalue) {
                     $file_value = array();
                     $mat_ids = explode(',', $fvalue);
                     foreach ($mat_ids as $k => $vm) {
                         if ($vm) {
                             $mat_id = @explode('_', $vm);
                             $file_value[] = $mat[$mat_id[0]];
                         }
                     }
                     $r['value'] = implode(", ", $file_value);
                 }
             }
             $formname = $r['form_name'] ? $r['form_name'] : ($form_name[$r['type']][$r['form_id']] ? $form_name[$r['type']][$r['form_id']] : '组件' . $r['form_id']);
             $rec['names'][$r['type'] . '_' . $r['form_id']] = $formname;
             $rec['data'][$r['person_id']][$r['type'] . '_' . $r['form_id']] = $r['value'];
         }
         $rec['names']['user_name'] = '用户昵称';
         $rec['names']['create_time'] = '填写时间';
         $rec['names']['process'] = '是否处理';
         $rec['names']['device_token'] = '设备号';
         if (is_array($person) && count($person) > 0) {
             foreach ($person as $k => $v) {
                 $rec['data'][$v['id']]['user_name'] = $v['user_name'] ? $v['user_name'] : '未登录';
                 $rec['data'][$v['id']]['create_time'] = $v['create_time'] ? date('Y-m-d H:i:s', $v['create_time']) : '';
                 $rec['data'][$v['id']]['process'] = $v['process'] ? '已处理' : '未处理';
                 $rec['data'][$v['id']]['device_token'] = $v['device_token'] ? $v['device_token'] : '';
             }
         }
     }
     if (!$rec) {
         $this->errorOutput(NO_CONTENT);
     }
     include_once CUR_CONF_PATH . 'lib/XmlExcel.php';
     $xls = new XmlExcel();
     $xls->setDefaultWidth(80);
     $xls->setDefaultAlign("center");
     $xls->setDefaultHeight(18);
     $xls->addTitle($rec['title'], $rec['title']);
     $xls->addHead($rec['names'], $rec['title']);
     if (is_array($rec['data']) && count($rec['data']) > 0) {
         foreach ($rec['data'] as $k => $value) {
             foreach ($rec['names'] as $key => $rs) {
                 $mac[$k][] = $value[$key];
             }
             $xls->addRow($mac[$k], $rec['title']);
         }
     }
     $xls->export($rec['title']);
     exit;
 }
 public function exportExcel($headArr, $data, $fileName = 'info')
 {
     import('@.ORG.XmlExcel');
     $xls = new XmlExcel();
     $xls->setDefaultWidth(180);
     $xls->setDefaultAlign("left");
     $xls->setDefaultHeight(18);
     $xls->addHead($headArr);
     foreach ($data as $k => $v) {
         $xls->addRow($v);
     }
     $xls->export($fileName);
 }
Example #3
0
 /**
  * @desc 自动创建工作薄,支持自动分卷技术,该方法与addHead冲突,使用该方法时请勿调用addHead,否则将添加一个空白的工作薄
  * @param array $head 表头
  * @param array $data 数据
  * @param int $pageSize 页面行数 默认60000,excel最大支持65536
  * @param string $defaultName 工作薄名,工作簿不能重名
  */
 public function addPageRow(array $head, array $data, $pageSize = 60000, $defaultName = "Sheet")
 {
     if (!isset($defaultName) || $defaultName == "Sheet") {
         $defaultName = "Sheet" . ($this->getSheets() + 1);
     }
     if (empty(self::$pre_workBook)) {
         self::$pre_workBook = $defaultName;
         if (!isset($this->_heads[self::$pre_workBook][0])) {
             $this->addHead($head, self::$pre_workBook);
         }
         $this->addRow($data, self::$pre_workBook);
     } else {
         if ($this->getRows(self::$pre_workBook) >= $pageSize + 1) {
             $this->addHead($head, $defaultName);
             $this->addRow($data, $defaultName);
             self::$pre_workBook = $defaultName;
         } else {
             $this->addRow($data, self::$pre_workBook);
         }
     }
 }
Example #4
0
function export()
{
    global $db;
    require LDINC . '/XmlExcel.php';
    $title1 = array('URL', 'User', 'Status', '节点IP', 'High', 'Middle', 'Low', 'Banner', 'OS', 'Finishtime');
    $title2 = array('Id', 'Type', 'Level', 'Webpath', 'Param', 'details', 'Request');
    if (!empty($_GET['hash'])) {
        $hash = $_GET['hash'];
        $xls = new XmlExcel();
        $xls->setDefaultWidth(80);
        $xls->setDefaultAlign("center");
        $xls->setDefaultHeight(30);
        $xls->addHead($title1, 'info');
        $sql = "SELECT a.url,a.user,a.pointserver,b.finishtime,b.banner,b.os,b.responsive FROM scan_list as a,target_info as b where a.hash = b.hash and a.hash = '{$hash}'";
        $results = $db->fetch_assoc($sql);
        $url = $results['url'];
        $user = $results['user'];
        $pointserver = $results['pointserver'];
        $finishtime = $results['finishtime'];
        $banner = $results['banner'];
        $os = $results['os'];
        $status = $results['responsive'];
        $high = get_severity($hash, 'high');
        $middle = get_severity($hash, 'middle');
        $low = get_severity($hash, 'low');
        $data_arr = array($url, $user, $status, $pointserver, $high, $middle, $low, $banner, $os, $finishtime);
        $xls->addRow($data_arr, 'info');
        $xls->addHead($title2, 'vulnerability');
        $sql = "SELECT * FROM target_vul where hash='{$hash}' order by Severity";
        $results = $db->query($sql);
        if (mysql_num_rows($results) > 0) {
            $i = 1;
            while ($fs = $db->fetch_array($results)) {
                $id = $i;
                $Name = $fs["name"];
                $Affects = $fs["affects"];
                $Parameter = $fs["parameter"];
                $Severity = $fs["severity"];
                $details = $fs["details"];
                $Request = str_replace("\r\n", '
', urldecode($fs["request"]));
                //$Response = str_replace("\r\n",'
',urldecode($fs["response"]));
                if (strtolower($Severity) == 'high') {
                    $class = 'error';
                } else {
                    if (strtolower($Severity) == 'middle') {
                        $class = 'warning';
                    } else {
                        if (strtolower($Severity) == 'low' or strtolower($Severity) == 'info') {
                            $class = 'info';
                        }
                    }
                }
                if ($Parameter == 'Array') {
                    $Parameter = '';
                }
                if ($Request == 'Array') {
                    $Request = '';
                }
                /*
                if ($Response == 'Array'){
                	$Response = '';
                }
                */
                $vul_arr = array($id, $Name, $Severity, $Affects, $Parameter, $details, $Request);
                $xls->addRow($vul_arr, 'vulnerability');
            }
        }
        $xls->export($hash);
    }
}