0){ //考试模式 $ccid=$OJ_EXAM_CONTEST_ID; $sql="select min(start_time) from contest where start_time<=now() and end_time>=now() and contest_id>=?"; $rows=pdo_query($sql,$ccid); $start_time=$rows[0][0]; $sql="select ip from loginlog where user_id=? and time>? order by time desc limit 1"; $rows=pdo_query($sql,$user_id,$start_time); $lastip=$rows[0][0]; $sql="select count(1) from `privilege` where `user_id`=? and `rightstr`='administrator' limit 1"; $rows=pdo_query($sql, $user_id); $isAdministrator=($rows[0][0]>0); if((!empty($lastip))&&$lastip!=$ip&&!($isAdministrator)) { //如果考试开后曾经登陆过,则之后登陆所用ip必须保持一致。 $view_errors="$MSG_WARNING_LOGIN_FROM_DIFF_IP($lastip/$ip) $MSG_WARNING_DURING_EXAM_NOT_ALLOWED!"; return false; }//如遇机器故障,可经管理员后台指定新的ip来允许登陆。 } $sql="INSERT INTO `loginlog`(user_id,password,ip,time) VALUES(?,'login ok',?,NOW())"; pdo_query($sql,$user_id,$ip); $sql="UPDATE users set accesstime=now(),ip=? where user_id=?"; pdo_query($sql,$ip,$user_id); return $user_id; } } return false; } ?>