mirror of
https://github.com/renbaoshuo/S2OJ.git
synced 2025-02-17 01:46:41 +00:00
When move out judger from bundle, no need to create judger account. So these work paths will no longer exist. Prepare for future.
47 lines
1.3 KiB
PHP
47 lines
1.3 KiB
PHP
<?php
|
|
requirePHPLib('judger');
|
|
switch ($_GET['type']) {
|
|
case 'problem':
|
|
if (!validateUInt($_GET['id']) || !($problem = queryProblemBrief($_GET['id']))) {
|
|
become404Page();
|
|
}
|
|
|
|
$visible = isProblemVisibleToUser($problem, $myUser);
|
|
if (!$visible && $myUser != null) {
|
|
$result = DB::query("select contest_id from contests_problems where problem_id = {$_GET['id']}");
|
|
while (list($contest_id) = DB::fetch($result, MYSQLI_NUM)) {
|
|
$contest = queryContest($contest_id);
|
|
genMoreContestInfo($contest);
|
|
if ($contest['cur_progress'] != CONTEST_NOT_STARTED && hasRegistered($myUser, $contest) && queryContestProblemRank($contest, $problem)) {
|
|
$visible = true;
|
|
}
|
|
}
|
|
}
|
|
if (!$visible) {
|
|
become404Page();
|
|
}
|
|
|
|
$id = $_GET['id'];
|
|
|
|
$file_name = "/var/uoj_data/$id/download.zip";
|
|
$download_name = "problem_$id.zip";
|
|
break;
|
|
case 'testlib.h':
|
|
$file_name = "/opt/UOJ-System/judger/uoj_judger/include/testlib.h";
|
|
$download_name = "testlib.h";
|
|
break;
|
|
default:
|
|
become404Page();
|
|
}
|
|
|
|
$finfo = finfo_open(FILEINFO_MIME);
|
|
$mimetype = finfo_file($finfo, $file_name);
|
|
if ($mimetype === false) {
|
|
become404Page();
|
|
}
|
|
finfo_close($finfo);
|
|
|
|
header("X-Sendfile: $file_name");
|
|
header("Content-type: $mimetype");
|
|
header("Content-Disposition: attachment; filename=$download_name");
|
|
?>
|