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 .= "$MSG_STANDING"; $view_errors .= "OI$MSG_STANDING"; $view_errors .= "$MSG_STATISTICS"; $view_errors .= "
"; $view_errors .= "

"; $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); }