Unify compile error details under reinfo

This commit is contained in:
jieer
2026-07-23 10:56:33 +08:00
parent 8420e0529f
commit 44812f70e3
4 changed files with 21 additions and 17 deletions
+8 -3
View File
@@ -181,6 +181,7 @@ function parse_diff_blocks($text) {
return $blocks; return $blocks;
} }
$is_compile_error = intval($row['result']) == 11;
$view_reinfo = ""; $view_reinfo = "";
$view_reinfo_raw = ""; // 原始(管理员/有权限者看) $view_reinfo_raw = ""; // 原始(管理员/有权限者看)
$view_reinfo_summary = ""; // 折叠后(普通用户看) $view_reinfo_summary = ""; // 折叠后(普通用户看)
@@ -195,7 +196,9 @@ if($ok){
$view_mail_link= "<a href='mail.php?to_user=".htmlentities($row['user_id'],ENT_QUOTES,"UTF-8")."&title=$MSG_SUBMIT $id'>Mail the auther</a>"; $view_mail_link= "<a href='mail.php?to_user=".htmlentities($row['user_id'],ENT_QUOTES,"UTF-8")."&title=$MSG_SUBMIT $id'>Mail the auther</a>";
} }
$sql = "SELECT `error` FROM `runtimeinfo` WHERE `solution_id`=?"; $sql = $is_compile_error
? "SELECT `error` FROM `compileinfo` WHERE `solution_id`=?"
: "SELECT `error` FROM `runtimeinfo` WHERE `solution_id`=?";
$rt = pdo_query($sql,$id); $rt = pdo_query($sql,$id);
$raw_error = ""; $raw_error = "";
if(isset($rt[0])){ if(isset($rt[0])){
@@ -247,7 +250,7 @@ if($ok){
$verdict_tip = "程序运行中发生错误(Runtime Error"; $verdict_tip = "程序运行中发生错误(Runtime Error";
break; break;
case 11: // CE case 11: // CE
$verdict_tip = "编译错误(Compile Error)。请查看编译信息"; $verdict_tip = "编译错误(Compile Error)。请查看下方编译信息。";
break; break;
case 13: // TR (test run) case 13: // TR (test run)
$verdict_tip = "测试运行完成(Test Run"; $verdict_tip = "测试运行完成(Test Run";
@@ -261,6 +264,8 @@ if($ok){
if (trim($raw_error) === "") { if (trim($raw_error) === "") {
// TLE/MLE/OLE 时 runtimeinfo 通常为空 // TLE/MLE/OLE 时 runtimeinfo 通常为空
$view_reinfo_summary = ""; $view_reinfo_summary = "";
} elseif ($is_compile_error) {
$view_reinfo_summary = $raw_error;
} else { } else {
// 含 "PASS" 不再显示 "error3" 占位 // 含 "PASS" 不再显示 "error3" 占位
// 含 "php" 不再显示 "error2" 占位(用 generic 提示) // 含 "php" 不再显示 "error2" 占位(用 generic 提示)
@@ -348,7 +353,7 @@ else{
/////////////////////////Template /////////////////////////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; $view_errors = $MSG_WARNING_ACCESS_DENIED;
require("template/".$OJ_TEMPLATE."/error.php"); require("template/".$OJ_TEMPLATE."/error.php");
exit(0); exit(0);
+1 -2
View File
@@ -488,7 +488,7 @@ for ($i=0; $i<$rows_cnt; $i++) {
$view_status[$i][3] = "<span class='hidden' style='display:none' result=".$row['result']."></span>"; $view_status[$i][3] = "<span class='hidden' style='display:none' result=".$row['result']."></span>";
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']))) { 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] .= "<a href=ceinfo.php?sid=".$row['solution_id']." class='".$judge_color[$row['result']]."' title='$MSG_Tips'>".$MSG_Compile_Error."</a>"; $view_status[$i][3] .= "<a href=reinfo.php?sid=".$row['solution_id']." class='".$judge_color[$row['result']]."' title='$MSG_Tips'>".$MSG_Compile_Error."</a>";
} }
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']))) { 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] .= "<a href=reinfo.php?sid=".$row['solution_id']." class='".$judge_color[$row['result']]."' title='$MSG_Tips'>".$judge_result[$row['result']].$mark."</a>"; $view_status[$i][3] .= "<a href=reinfo.php?sid=".$row['solution_id']." class='".$judge_color[$row['result']]."' title='$MSG_Tips'>".$judge_result[$row['result']].$mark."</a>";
@@ -625,4 +625,3 @@ if( $need_refresh_remote && isset($OJ_REMOTE_JUDGE)&&$OJ_REMOTE_JUDGE&& (time()-
<?php <?php
} }
?> ?>
+1 -1
View File
@@ -96,7 +96,7 @@ function fresh_result(solution_id) {
row.cells[4].innerHTML = "<a href=reinfo.php?sid="+solution_id+" class='"+judge_color[ra[0]]+"'>"+judge_result[ra[0]]+" :"+(oj_mark=='percent'?100-ra[4].trim():ra[4].trim())+"%</a>"; row.cells[4].innerHTML = "<a href=reinfo.php?sid="+solution_id+" class='"+judge_color[ra[0]]+"'>"+judge_result[ra[0]]+" :"+(oj_mark=='percent'?100-ra[4].trim():ra[4].trim())+"%</a>";
break; break;
case 11: case 11:
row.cells[4].innerHTML = "<a href=ceinfo.php?sid="+solution_id+" class='"+judge_color[ra[0]]+"'>"+judge_result[ra[0]]+"</a>"; row.cells[4].innerHTML = "<a href=reinfo.php?sid="+solution_id+" class='"+judge_color[ra[0]]+"'>"+judge_result[ra[0]]+"</a>";
break; break;
default: default:
// row.cells[4].innerHTML = "<span class='"+judge_color[ra[0]]+"'>"+judge_result[ra[0]]+" AC:"+ra[4].trim()+"%</span>"; // row.cells[4].innerHTML = "<span class='"+judge_color[ra[0]]+"'>"+judge_result[ra[0]]+" AC:"+ra[4].trim()+"%</span>";
+1 -1
View File
@@ -601,7 +601,7 @@ function fresh_result(solution_id)
else tag="a"; else tag="a";
{ {
if(ra[0]==11||ra[0]>15) 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]]+"</"+tag+">"; tb.innerHTML="<"+tag+" href='reinfo.php?sid="+solution_id+"' class='badge badge-info' target=_blank>"+judge_result[ra[0]]+"</"+tag+">";
else else
tb.innerHTML="<"+tag+" href='reinfo.php?sid="+solution_id+"' class='badge badge-info' target=_blank>"+judge_result[ra[0]]+"AC:"+ra[4]+"</"+tag+">"; tb.innerHTML="<"+tag+" href='reinfo.php?sid="+solution_id+"' class='badge badge-info' target=_blank>"+judge_result[ra[0]]+"AC:"+ra[4]+"</"+tag+">";
} }