} else { $errp = 0; foreach ($inputlist as $file) { $file = basename($file); if (is_file($dir . $ds . "input" . $ds . $file)) { $file1 = basename($file, '.link'); if ($file != $file1) { $fnam = trim(file_get_contents($dir . $ds . "input" . $ds . $file)); echo "Input file {$file} is a link. Trying to read the linked file: ({$fnam})\n"; if (is_readable($fnam)) { @unlink($dir . $ds . "input" . $ds . $file); $file = basename($file, ".link"); @copy($fnam, $dir . $ds . "input" . $ds . $file); } else { echo "Failed to read input files from link indicated in the ZIP -- please check the problem package\n"; DBGiveUpRunAutojudging($contest, $site, $number, $ip, "error: problem package file is invalid (11) or missing files on the autojudge"); $errp = 1; break; } } $ex = escapeshellcmd($script) . " " . escapeshellarg($basename) . " " . escapeshellarg($dir . $ds . "input" . $ds . $file) . " " . escapeshellarg(trim($limits[$basename][$run["extension"]][0])) . " " . escapeshellarg(trim($limits[$basename][$run["extension"]][1])) . " " . escapeshellarg(trim($limits[$basename][$run["extension"]][2])) . " " . escapeshellarg(trim($limits[$basename][$run["extension"]][3])); $ex .= " >stdout 2>stderr"; chdir($dir); if (file_exists($dir . $ds . 'tmp')) { cleardir($dir . $ds . 'tmp'); } mkdir($dir . $ds . 'tmp', 0777); @chown($dir . $ds . 'tmp', "nobody"); if (is_readable($dir . $ds . $basename)) { @copy($dir . $ds . $basename, $dir . $ds . 'tmp' . $ds . $basename); @chown($dir . $ds . 'tmp' . $ds . $basename, "nobody");
} else { $s["sitejudging"] = $_SESSION["usertable"]["usersitenumber"]; } $run = DBAllRunsInSites($_SESSION["usertable"]["contestnumber"], $s["sitejudging"], $order); if (isset($_POST)) { $nrenew = 0; $nreopen = 0; for ($i = 0; $i < count($run); $i++) { if (isset($_POST["cbox_" . $run[$i]["number"] . "_" . $run[$i]["site"]]) && $_POST["cbox_" . $run[$i]["number"] . "_" . $run[$i]["site"]] != "") { if (isset($_POST["auto"]) && $_POST["auto"] == "Re-run autojudge for selected runs") { if (DBGiveUpRunAutojudging($_SESSION["usertable"]["contestnumber"], $run[$i]["site"], $run[$i]["number"])) { $nrenew++; } } if (isset($_POST["open"]) && $_POST["open"] == "Open selected runs for rejudging") { DBGiveUpRunAutojudging($_SESSION["usertable"]["contestnumber"], $run[$i]["site"], $run[$i]["number"]); if (DBChiefRunGiveUp($run[$i]["number"], $run[$i]["site"], $_SESSION["usertable"]["contestnumber"])) { $nreopen++; } } } } if ($nrenew > 0) { MSGError($nrenew . " runs renewed for autojudging."); ForceLoad($runphp); } if ($nreopen > 0) { MSGError($nreopen . " runs reopened."); ForceLoad($runphp); } }
} if (isset($_POST["delete"]) && $_POST["delete"] == "Delete" && isset($_POST["sitenumber"]) && isset($_POST["number"]) && is_numeric($_POST["number"]) && is_numeric($_POST["sitenumber"])) { if ($_POST["confirmation"] == "confirm") { $sitenumber = myhtmlspecialchars($_POST["sitenumber"]); $number = myhtmlspecialchars($_POST["number"]); if (DBRunDelete($number, $sitenumber, $_SESSION["usertable"]["contestnumber"], $_SESSION["usertable"]["usernumber"], $_SESSION["usertable"]["usersitenumber"])) { MSGError("Run deleted."); } } ForceLoad($runphp); } if (isset($_POST["answer"]) && isset($_POST["open"]) && $_POST["open"] == "Open run for rejudging" && isset($_POST["sitenumber"]) && isset($_POST["number"]) && is_numeric($_POST["number"]) && is_numeric($_POST["sitenumber"])) { if ($_POST["confirmation"] == "confirm") { $sitenumber = myhtmlspecialchars($_POST["sitenumber"]); $number = myhtmlspecialchars($_POST["number"]); DBGiveUpRunAutojudging($_SESSION["usertable"]["contestnumber"], $sitenumber, $number); if (DBChiefRunGiveUp($_POST["number"], $_POST["sitenumber"], $_SESSION["usertable"]["contestnumber"])) { MSGError("Run returned."); } ForceLoad($runphp); } } if (isset($_POST["answer"]) && isset($_POST["Submit"]) && $_POST["Submit"] == "Judge" && is_numeric($_POST["answer"]) && isset($_POST["sitenumber"]) && isset($_POST["number"]) && is_numeric($_POST["sitenumber"]) && is_numeric($_POST["number"])) { // && isset($_POST["notifyuser"]) && isset($_POST["updatescore"])) { if ($_POST["confirmation"] == "confirm") { $answer = myhtmlspecialchars($_POST["answer"]); $sitenumber = myhtmlspecialchars($_POST["sitenumber"]); $number = myhtmlspecialchars($_POST["number"]); // $notuser = myhtmlspecialchars($_POST["notifyuser"]); // $updscore = myhtmlspecialchars($_POST["updatescore"]); DBChiefUpdateRun($_SESSION["usertable"]["contestnumber"], $_SESSION["usertable"]["usersitenumber"], $_SESSION["usertable"]["usernumber"], $sitenumber, $number, $answer);