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
$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 {