contest_registration.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. <?php
  2. requirePHPLib('form');
  3. if (!validateUInt($_GET['id']) || !($contest = queryContest($_GET['id']))) {
  4. become404Page();
  5. }
  6. genMoreContestInfo($contest);
  7. if ($myUser == null) {
  8. redirectToLogin();
  9. } elseif (hasContestPermission($myUser, $contest) || hasRegistered($myUser, $contest) ||
  10. ($contest['cur_progress'] != CONTEST_NOT_STARTED && $contest['cur_progress'] != CONTEST_IN_PROGRESS)) {
  11. redirectTo('/contests');
  12. }
  13. $register_form = new UOJForm('register');
  14. $register_form->handle = function() {
  15. global $myUser, $contest;
  16. DB::query("insert into contests_registrants (username, user_rating, contest_id, has_participated) values ('{$myUser['username']}', {$myUser['rating']}, {$contest['id']}, 0)");
  17. updateContestPlayerNum($contest);
  18. };
  19. $register_form->submit_button_config['class_str'] = 'btn btn-primary';
  20. $register_form->submit_button_config['text'] = '报名比赛';
  21. $register_form->succ_href = "/contests";
  22. $register_form->runAtServer();
  23. ?>
  24. <?php echoUOJPageHeader(HTML::stripTags($contest['name']) . ' - 报名') ?>
  25. <h1 class="page-header">比赛规则</h1>
  26. <ul>
  27. <li>比赛报名后不算正式参赛,报名后进了比赛页面也不算参赛,<strong>看了题目才算正式参赛</strong>。如果未正式参赛则不算rating。</li>
  28. <li>比赛中途可以提交,若同一题有多次提交按<strong>最后一次不是Compile Error的提交</strong>算成绩。(其实UOJ会自动无视你所有Compile Error的提交当作没看见)</li>
  29. <li>比赛中途提交后,可以看到<strong>测样例</strong>的结果。(若为提交答案题则对于每个测试点,该测试点有分则该测试点为满分)</li>
  30. <li>比赛结束后会进行最终测试,最终测试后的排名为最终排名。</li>
  31. <li>比赛排名按分数为第一关键字,完成题目的总时间为第二关键字。完成题目的总时间等于完成每道题所花时间之和(无视掉爆零的题目)。</li>
  32. <li>请遵守比赛规则,一位选手在一场比赛内不得报名多个账号,选手之间不能交流或者抄袭代码,如果被检测到将以0分处理或者封禁。</li>
  33. </ul>
  34. <?php $register_form->printHTML(); ?>
  35. <?php echoUOJPageFooter() ?>