3) return true; $n = strlen($str2); $str = str_split($str2); $m = 1; for($i=0; $i<$n; $i++){ if(is_numeric($str[$i])) $m++; } return $n/$m>3; } if(!isset($_SESSION[$OJ_NAME.'_'.'user_id'])){ $view_errors = $MSG_WARNING_ACCESS_DENIED ; require("template/".$OJ_TEMPLATE."/error.php"); exit(0); } $ok = false; $id = strval(intval($_GET['sid'])); $sql = "SELECT * FROM `solution` WHERE `solution_id`=?"; $result = pdo_query($sql,$id); $row = $result[0]; $lang = $row['language']; $contest_id = intval($row['contest_id']); $isRE = $row['result']==10; $isAC = $row['result']==4 ; $mark=$row['pass_rate']*100; if($isAC) $mark=100; if((isset($_SESSION[$OJ_NAME.'_'.'user_id']) && $row && ($row['user_id']==$_SESSION[$OJ_NAME.'_'.'user_id']))||isset($_SESSION[$OJ_NAME.'_'.'source_browser'])) { $ok = true; } $spj=pdo_query("select spj from problem where problem_id=?",$row['problem_id']); if(!empty($spj)&&$spj[0][0]==2 && $OJ_HIDE_RIGHT_ANSWER && !isset($_SESSION[$OJ_NAME.'_'.'source_browser']) ){ $view_errors = "

$MSG_MARK:$mark


"; $ok = false; } $view_reinfo = ""; if($ok){ if($row['user_id']!=$_SESSION[$OJ_NAME.'_'.'user_id']){ $view_mail_link= "Mail the auther"; } $sql = "SELECT `error` FROM `runtimeinfo` WHERE `solution_id`=?"; $result = pdo_query($sql,$id); if(isset($result[0])){ $row = $result[0]; $view_reinfo = str_replace("\n\r","\n",$row['error']); // $view_reinfo=htmlentities($view_reinfo,ENT_QUOTES,"UTF-8"); } if(strpos($row['error'],"judge/")!==false&&!isset($_SESSION[$OJ_NAME."_administrator"])) $view_reinfo = "潜在的数组或指针越界,请检查代码。"; else if(strpos($row['error'],"php")!==false) $view_reinfo = "error2"; else if(strpos($row['error'],"PASS")!==false) $view_reinfo = "error3"; else if($OJ_SHOW_DIFF && $row && ($ok||$isRE) && ($OJ_TEST_RUN||is_valid($row['error'])||$ok)){ $view_reinfo = str_replace("\n\r","\n",$row['error']); $view_reinfo = htmlspecialchars_decode($view_reinfo,ENT_QUOTES); // $view_reinfo = htmlentities($view_reinfo,ENT_QUOTES,"UTF-8"); // $view_reinfo = "```\n" . $view_reinfo. "```\n"; $view_reinfo .="
$MSG_MARK:$mark"; } else{ $view_errors = $MSG_WARNING_ACCESS_DENIED; //$view_reinfo = "出于数据保密原因,当前错误提示不可查看,如果希望能让任何人都查看对比和运行错误,请管理员配置\$OJ_SHOW_DIFF=true;
然后编辑本文件,开放18行首注释,令is_valid总是返回true。
\n Sorry , not available (RE:".$isRE.",OJ_SHOW_DIFF:".$OJ_SHOW_DIFF.",TR:".$OJ_TEST_RUN.",valid:".is_valid($row['error']).")"; } } else{ if($spj[0][0]!=2) $view_errors = $MSG_WARNING_ACCESS_DENIED; require("template/".$OJ_TEMPLATE."/error.php"); exit(0); } /////////////////////////Template if(!isset($_SESSION[$OJ_NAME.'_'.'source_browser']) && $OJ_SHOW_DIFF==false){ $view_errors = $MSG_WARNING_ACCESS_DENIED; require("template/".$OJ_TEMPLATE."/error.php"); exit(0); } else{ require("template/".$OJ_TEMPLATE."/reinfo.php"); } /////////////////////////Common foot if(file_exists('./include/cache_end.php')){ require_once('./include/cache_end.php'); } ?>