コード例 #1
0
ファイル: tce_import_omr_bulk.php プロジェクト: dungvu/tcexam
 if (!is_dir($filename) and preg_match('/OMR_([^_]+)_QR.([a-zA-Z]+)/', $file, $matches)) {
     // read OMR DATA page
     $omr_testdata = F_decodeOMRTestDataQRCode($filename);
     if ($omr_testdata === false) {
         F_print_error('ERROR', $l['m_omr_wrong_test_data']);
         file_put_contents($logfile, 'ERROR' . "\t" . $file . "\t" . 'UNABLE TO DECODE' . "\n", FILE_APPEND);
     } else {
         file_put_contents($logfile, 'OK' . "\t" . $file . "\t" . 'SUCCESSFULLY DECODED' . "\n", FILE_APPEND);
         // read OMR ANSWER SHEET pages
         $num_questions = count($omr_testdata) - 1;
         $num_pages = ceil($num_questions / 30);
         $omr_answers = array();
         for ($i = 1; $i <= $num_pages; ++$i) {
             $answerfile = 'OMR_' . $matches[1] . '_A' . $i . '.' . $matches[2];
             if (file_exists($omrdir . $answerfile)) {
                 $answers_page = F_decodeOMRPage($omrdir . $answerfile);
                 if ($answers_page !== false and !empty($answers_page)) {
                     $omr_answers += $answers_page;
                     file_put_contents($logfile, 'OK' . "\t" . $answerfile . "\t" . 'SUCCESSFULLY DECODED' . "\n", FILE_APPEND);
                 } else {
                     F_print_error('ERROR', '[OMR ANSWER SHEET ' . $answerfile . '] ' . $l['m_omr_wrong_answer_sheet']);
                     file_put_contents($logfile, 'ERROR' . "\t" . $answerfile . "\t" . 'UNABLE TO DECODE' . "\n", FILE_APPEND);
                 }
             } else {
                 F_print_error('ERROR', '[OMR ANSWER SHEET ' . $answerfile . '] ' . $l['m_omr_wrong_answer_sheet']);
                 file_put_contents($logfile, 'ERROR' . "\t" . $answerfile . "\t" . 'MISSING IMAGE FILE' . "\n", FILE_APPEND);
             }
         }
         // sort answers
         ksort($omr_answers);
         // get user ID from user registration code
コード例 #2
0
    $overwrite = F_getBoolean($_REQUEST['overwrite']);
}
// process uploaded files
if (isset($menu_mode) and $menu_mode == 'upload' and $user_id > 0 and !empty($_FILES)) {
    // read OMR DATA page
    $omr_testdata = F_decodeOMRTestDataQRCode($_FILES['omrfile']['tmp_name'][0]);
    if ($omr_testdata === false) {
        F_print_error('ERROR', $l['m_omr_wrong_test_data']);
    } else {
        // read OMR ANSWER SHEET pages
        $num_questions = count($omr_testdata) - 1;
        $num_pages = ceil($num_questions / 30);
        $omr_answers = array();
        for ($i = 1; $i <= $num_pages; ++$i) {
            if ($_FILES['omrfile']['error'][$i] == 0) {
                $answers_page = F_decodeOMRPage($_FILES['omrfile']['tmp_name'][$i]);
                if ($answers_page !== false and !empty($answers_page)) {
                    $omr_answers += $answers_page;
                } else {
                    F_print_error('ERROR', '[OMR ANSWER SHEET ' . $i . '] ' . $l['m_omr_wrong_answer_sheet']);
                }
            } else {
                F_print_error('ERROR', '[OMR ANSWER SHEET ' . $i . '] ' . $l['m_omr_wrong_answer_sheet']);
            }
        }
        // sort answers
        ksort($omr_answers);
        // import answers
        if (F_importOMRTestData($user_id, $date, $omr_testdata, $omr_answers, $overwrite)) {
            F_print_error('MESSAGE', $l['m_import_ok'] . ': <a href="tce_show_result_user.php?testuser_id=32&test_id=' . $omr_testdata[0] . '&user_id=' . $user_id . '" title="' . $l['t_result_user'] . '" style="text-decoration:underline;color:#0000ff;">' . $l['w_results'] . '</a>');
        } else {