0){
$row = $result[0];
$start_time = strtotime($row['start_time']);
$end_time = strtotime($row['end_time']);
$view_description = $row['description'];
$view_title = $row['title'];
$view_start_time = $row['start_time'];
$view_end_time = $row['end_time'];
}
$contest_ok = true;
$password = "";
if (isset($_POST['password']))
$password = $_POST['password'];
if (false) {
$password = stripslashes($password);
}
if ($rows_cnt==0) {
$view_title = "比赛已经关闭!";
}
else{
$view_private = $row['private'];
$view_contest_creator= $row['user_id'];
if ($password!="" && $password==$row['password'])
$_SESSION[$OJ_NAME.'_'.'c'.$cid] = true;
if ($row['private'] && !isset($_SESSION[$OJ_NAME.'_'.'c'.$cid]))
$contest_ok = false;
// if($row['defunct']=='Y') //defunct problem not in contest/exam list
// $contest_ok = false;
if (isset($_SESSION[$OJ_NAME.'_'.'administrator']) || isset($_SESSION[$OJ_NAME.'_'.'contest_creator']))
$contest_ok = true;
if ($unixnow>$end_time) $contest_is_over=true; // 已经结束的比赛,按练习方式提交
else $contest_is_over=false;
if (!isset($_SESSION[$OJ_NAME.'_'.'administrator']) && $unixnow<$start_time) {
$view_errors = "
";
$view_errors .= "$MSG_CONTEST_ID : $view_cid - $view_title
";
$view_errors .= "$view_description
";
$view_errors .= "
";
$view_errors .= "$MSG_TIME_WARNING";
$view_errors .= "";
$view_errors .= "
";
require("template/".$OJ_TEMPLATE."/error.php");
exit(0);
}
}
if(!isset($OJ_CONTEST_LIMIT_KEYWORD)) $OJ_CONTEST_LIMIT_KEYWORD="限时";
if($contest_ok && str_contains($view_description,$OJ_CONTEST_LIMIT_KEYWORD)&&isset($_SESSION[$OJ_NAME."_user_id"])){
echo "";
$contest_limit_minutes=intval(getPartByMark($view_description,$OJ_CONTEST_LIMIT_KEYWORD,"分钟")); //允许比赛描述中用 "限时xx分钟" 规定个人做题时间。
if($contest_limit_minutes==0) $contest_limit_minutes=120;
echo "";
$user_id=$_SESSION[$OJ_NAME."_user_id"];
$first_login_contest=pdo_query("select time from loginlog where user_id=? and password=?",$user_id,"c".$cid);
if(empty($first_login_contest)){
echo "";
$ip = ($_SERVER['REMOTE_ADDR']);
if( isset($_SERVER['HTTP_X_FORWARDED_FOR'] )&&!empty( trim( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) ){
$REMOTE_ADDR = $_SERVER['HTTP_X_FORWARDED_FOR'];
$tmp_ip=explode(',',$REMOTE_ADDR);
$ip =(htmlentities($tmp_ip[0],ENT_QUOTES,"UTF-8"));
} else if(isset($_SERVER['HTTP_X_REAL_IP'])&& !empty( trim( $_SERVER['HTTP_X_REAL_IP'] ) ) ){
$REMOTE_ADDR = $_SERVER['HTTP_X_REAL_IP'];
$tmp_ip=explode(',',$REMOTE_ADDR);
$ip =(htmlentities($tmp_ip[0],ENT_QUOTES,"UTF-8"));
}
$sql="INSERT INTO `loginlog`(user_id,password,ip,time) VALUES(?,?,?,NOW())";
pdo_query($sql,$user_id,"c".$cid,$ip);
$first_login_contest=time();
}else{
$first_login_contest=strtotime($first_login_contest[0][0]);
}
$unixnow=time();
echo "";
if($unixnow-$first_login_contest>=$contest_limit_minutes*60 && !isset($_SESSION[$OJ_NAME."_m".$cid]) && !isset($_SESSION[$OJ_NAME."_administrator"])){
$contest_ok=false;
$view_errors = "";
$view_errors .= "$MSG_CONTEST_ID : $view_cid - $view_title
";
$view_errors .= "$view_description
";
require("template/".$OJ_TEMPLATE."/error.php");
exit(0);
}else{
$time_left=$contest_limit_minutes*60-($unixnow-$first_login_contest);
if($time_left>0)
$view_description.="
$MSG_LeftTime :". intval($time_left/60)." $MSG_MINUTES" .($time_left % 60). $MSG_SECONDS."";
}
};
if (!$contest_ok) {
$view_errors = "";
$view_errors .= "$MSG_CONTEST_ID : $view_cid - $view_title
";
$view_errors .= "$view_description
";
$view_errors .= "$MSG_PRIVATE_WARNING";
$view_errors .= "
";
$view_errors .= "";
$view_errors .= "
";
$view_errors .= "";
$view_errors .= "";
$view_errors .= "| ";
$view_errors .= "";
$view_errors .= " | ";
$view_errors .= "
";
$view_errors .= "
";
$view_errors .= "
";
require("template/".$OJ_TEMPLATE."/error.php");
exit(0);
}