diff --git a/web/reinfo.php b/web/reinfo.php index 0dbf532..6c2397c 100644 --- a/web/reinfo.php +++ b/web/reinfo.php @@ -181,9 +181,10 @@ function parse_diff_blocks($text) { return $blocks; } +$is_compile_error = intval($row['result']) == 11; $view_reinfo = ""; -$view_reinfo_raw = ""; // 原始(管理员/有权限者看) -$view_reinfo_summary = ""; // 折叠后(普通用户看) +$view_reinfo_raw = ""; // 原始(管理员/有权限者看) +$view_reinfo_summary = ""; // 折叠后(普通用户看) $view_reinfo_dedup_count = 0; // 折叠掉的测试点数 $verdict_color_class = "blue"; // semantic ui color: green/red/orange/yellow/grey $result_icon = "info circle"; @@ -195,8 +196,10 @@ if($ok){ $view_mail_link= "Mail the auther"; } - $sql = "SELECT `error` FROM `runtimeinfo` WHERE `solution_id`=?"; - $rt = pdo_query($sql,$id); + $sql = $is_compile_error + ? "SELECT `error` FROM `compileinfo` WHERE `solution_id`=?" + : "SELECT `error` FROM `runtimeinfo` WHERE `solution_id`=?"; + $rt = pdo_query($sql,$id); $raw_error = ""; if(isset($rt[0])){ $raw_error = $rt[0]['error']; @@ -246,8 +249,8 @@ if($ok){ case 10: // RE $verdict_tip = "程序运行中发生错误(Runtime Error)"; break; - case 11: // CE - $verdict_tip = "编译错误(Compile Error)。请查看编译信息页。"; + case 11: // CE + $verdict_tip = "编译错误(Compile Error)。请查看下方编译信息。"; break; case 13: // TR (test run) $verdict_tip = "测试运行完成(Test Run)"; @@ -258,10 +261,12 @@ if($ok){ // === 阶段 3:原始错误处理(syscall 提示 vs 占位符修复)=== $view_reinfo_raw = $raw_error; - if (trim($raw_error) === "") { - // TLE/MLE/OLE 时 runtimeinfo 通常为空 - $view_reinfo_summary = ""; - } else { + if (trim($raw_error) === "") { + // TLE/MLE/OLE 时 runtimeinfo 通常为空 + $view_reinfo_summary = ""; + } elseif ($is_compile_error) { + $view_reinfo_summary = $raw_error; + } else { // 含 "PASS" 不再显示 "error3" 占位 // 含 "php" 不再显示 "error2" 占位(用 generic 提示) if (strpos($raw_error, "php") !== false) { @@ -348,7 +353,7 @@ else{ /////////////////////////Template -if(!isset($_SESSION[$OJ_NAME.'_'.'source_browser']) && $OJ_SHOW_DIFF==false){ +if(!$is_compile_error && !isset($_SESSION[$OJ_NAME.'_'.'source_browser']) && $OJ_SHOW_DIFF==false){ $view_errors = $MSG_WARNING_ACCESS_DENIED; require("template/".$OJ_TEMPLATE."/error.php"); exit(0); diff --git a/web/status.php b/web/status.php index bf0581e..1fa8556 100644 --- a/web/status.php +++ b/web/status.php @@ -488,7 +488,7 @@ for ($i=0; $i<$rows_cnt; $i++) { $view_status[$i][3] = ""; if (intval($row['result'])==11 && ((isset($_SESSION[$OJ_NAME.'_'.'user_id']) && $row['user_id']==$_SESSION[$OJ_NAME.'_'.'user_id']) || isset($_SESSION[$OJ_NAME.'_'.'source_browser']))) { - $view_status[$i][3] .= "".$MSG_Compile_Error.""; + $view_status[$i][3] .= "".$MSG_Compile_Error.""; } else if ((((intval($row['result'])==8 || intval($row['result'])==7 || intval($row['result'])==5 || intval($row['result'])==6) && ($OJ_SHOW_DIFF || isset($_SESSION[$OJ_NAME.'_'.'source_browser']))) || $row['result']==10 || $row['result']==13) && ((isset($_SESSION[$OJ_NAME.'_'.'user_id']) && $row['user_id']==$_SESSION[$OJ_NAME.'_'.'user_id']) || isset($_SESSION[$OJ_NAME.'_'.'source_browser']))) { $view_status[$i][3] .= "".$judge_result[$row['result']].$mark.""; @@ -625,4 +625,3 @@ if( $need_refresh_remote && isset($OJ_REMOTE_JUDGE)&&$OJ_REMOTE_JUDGE&& (time()- - diff --git a/web/template/syzoj/auto_refresh.js b/web/template/syzoj/auto_refresh.js index e48c6d7..e39c43a 100644 --- a/web/template/syzoj/auto_refresh.js +++ b/web/template/syzoj/auto_refresh.js @@ -95,9 +95,9 @@ function fresh_result(solution_id) { case 10: row.cells[4].innerHTML = ""+judge_result[ra[0]]+" :"+(oj_mark=='percent'?100-ra[4].trim():ra[4].trim())+"%"; break; - case 11: - row.cells[4].innerHTML = ""+judge_result[ra[0]]+""; - break; + case 11: + row.cells[4].innerHTML = ""+judge_result[ra[0]]+""; + break; default: // row.cells[4].innerHTML = ""+judge_result[ra[0]]+" AC:"+ra[4].trim()+"%"; } diff --git a/web/template/syzoj/submitpage.php b/web/template/syzoj/submitpage.php index 6397991..d4dd9b4 100644 --- a/web/template/syzoj/submitpage.php +++ b/web/template/syzoj/submitpage.php @@ -601,7 +601,7 @@ function fresh_result(solution_id) else tag="a"; { if(ra[0]==11||ra[0]>15) - tb.innerHTML="<"+tag+" href='ceinfo.php?sid="+solution_id+"' class='badge badge-info' target=_blank>"+judge_result[ra[0]]+""; + tb.innerHTML="<"+tag+" href='reinfo.php?sid="+solution_id+"' class='badge badge-info' target=_blank>"+judge_result[ra[0]]+""; else tb.innerHTML="<"+tag+" href='reinfo.php?sid="+solution_id+"' class='badge badge-info' target=_blank>"+judge_result[ra[0]]+"AC:"+ra[4]+""; }