Files
hustoj/web/template/mdui/reinfo.php

142 lines
5.9 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en">
<head>
<?php $page_title = "$id 记录详情"; ?>
<?php include('_includes/head.php') ?>
</head>
<body class="mdui-drawer-body-left mdui-theme-primary-indigo mdui-theme-accent-indigo mdui-appbar-with-toolbar">
<?php include('_includes/header.php'); ?>
<?php include('_includes/sidebar.php'); ?>
<div class="mdui-container">
<div class="jumbotron">
<pre id="errtxt" class="alert alert-error"><?php echo $view_reinfo; ?></pre>
<div id="errexp">
<!--Explain:-->
</div>
</div>
</div>
<script>
var pats = new Array();
var exps = new Array();
pats[0] = /A Not allowed system call.*/;
exps[0] = "使用了系统禁止的操作系统调用,看看是否越权访问了文件或进程等资源,如果你是系统管理员,而且确认提交的答案没有问题,测试数据没有问题,可以发送'RE'到微信公众号onlinejudge查看解决方案。";
pats[1] = /Segmentation fault/;
exps[1] = "段错误,检查是否有数组越界,指针异常,访问到不应该访问的内存区域";
pats[2] = /Floating point exception/;
exps[2] = "浮点错误,检查是否有除以零的情况";
pats[3] = /buffer overflow detected/;
exps[3] = "缓冲区溢出,检查是否有字符串长度超出数组的情况";
pats[4] = /Killed/;
exps[4] = "进程因为内存或时间原因被杀死,检查是否有死循环";
pats[5] = /Alarm clock/;
exps[5] = "进程因为时间原因被杀死检查是否有死循环本错误等价于超时TLE";
pats[6] = /CALLID:20/;
exps[6] = "可能存在数组越界,检查题目描述的数据量与所申请数组大小关系";
pats[7] = /ArrayIndexOutOfBoundsException/;
exps[7] = "检查数组越界的情况";
pats[8] = /StringIndexOutOfBoundsException/;
exps[8] = "字符串的字符下标越界,检查 subString, charAt 等方法的参数";
function explain() {
//alert("asdf");
var errmsg = $("#errtxt").text();
var expmsg = ""; //"辅助解释:<br><hr>";
for (var i = 0; i < pats.length; i++) {
var pat = pats[i];
var exp = exps[i];
var ret = pat.exec(errmsg);
if (ret) {
expmsg += ret + ":" + exp + "<br><hr />";
}
}
document.getElementById("errexp").innerHTML = expmsg;
//alert(expmsg);
}
explain();
</script>
<?php if(isset($OJ_MARKDOWN)&&$OJ_MARKDOWN){ ?>
<script src="include/vditor-adapter.js"></script>
<script>
$(document).ready(function(){
HustOJVditor.renderMarkdownBlocks('#errtxt', {
getSource: function (element) {
var pre = element.querySelector ? element.querySelector('pre') : null;
return pre ? pre.textContent : element.textContent || '';
}
}).then(function () {
for(let i=1;i<10;i++){
$(".language-input"+i).parent().before("<div><?php echo $MSG_Input?>"+i+":</div>");
$(".language-output"+i).parent().before("<div><?php echo $MSG_Output?>"+i+":</div>");
}
$("#errtxt table").addClass("ui mini-table cell striped");
$("#errtxt table tr:odd td").css({
"border": "1px solid grey",
"text-align": "center",
"width": "200px",
"background-color": "#8521d022",
"height": "30px"
});
$("#errtxt table tr:even td").css({
"border": "1px solid grey",
"text-align": "center",
"width": "200px",
"background-color": "#2185d022",
"height": "30px"
});
$("#errtxt table th").css({
"border": "1px solid grey",
"width": "200px",
"height": "30px",
"background-color": "#2185d088",
"text-align": "center"
});
<?php
if(isset($OJ_DOWNLOAD)&&$OJ_DOWNLOAD){
if(isset($OJ_DL_1ST_WA_ONLY) && $OJ_DL_1ST_WA_ONLY){
?>
let down=$($("#errtxt").find("h2")[0]);
let filename=down.text();
down.html("<a href='download.php?sid=<?php echo $id?>&name=" + filename+ "'>" + filename+ "</a>");
<?php
}else{
?>
$("#errtxt").find("h2").each(function(){
let down=$(this);
let filename=down.text();
console.log(filename);
down.html("<a href='download.php?sid=<?php echo $id?>&name=" + filename+ "'>" + filename+ "</a>");
});
<?php
}
}
?>
$("th").each(function(){
let html=$(this).html();
html=html.replace("Expected","<?php echo $MSG_EXPECTED ?>");
html=html.replace("Yours","<?php echo $MSG_YOURS ?>");
html=html.replace("filename","<?php echo $MSG_FILENAME ?>");
html=html.replace("size","<?php echo $MSG_SIZE ?>");
html=html.replace("result","<?php echo $MSG_RESULT ?>");
html=html.replace("memory","<?php echo $MSG_MEMORY?>");
html=html.replace("time","<?php echo $MSG_TIME ?>");
$(this).html(html);
});
}).catch(function (error) {
console.error('Failed to render reinfo markdown.', error);
});
});
</script>
<?php } ?>
</body>
</html>