add_contest.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. requirePHPLib('form');
  3. if (!isSuperUser($myUser)) {
  4. become403Page();
  5. }
  6. $time_form = new UOJForm('time');
  7. $time_form->addInput(
  8. 'name', 'text', '比赛标题', 'New Contest',
  9. function($str) {
  10. return '';
  11. },
  12. null
  13. );
  14. $time_form->addInput(
  15. 'start_time', 'text', '开始时间', date("Y-m-d H:i:s"),
  16. function($str, &$vdata) {
  17. try {
  18. $vdata['start_time'] = new DateTime($str);
  19. } catch (Exception $e) {
  20. return '无效时间格式';
  21. }
  22. return '';
  23. },
  24. null
  25. );
  26. $time_form->addInput(
  27. 'last_min', 'text', '时长(单位:分钟)', 180,
  28. function($str) {
  29. return !validateUInt($str) ? '必须为一个整数' : '';
  30. },
  31. null
  32. );
  33. $time_form->handle = function(&$vdata) {
  34. $start_time_str = $vdata['start_time']->format('Y-m-d H:i:s');
  35. $purifier = HTML::pruifier();
  36. $esc_name = $_POST['name'];
  37. $esc_name = $purifier->purify($esc_name);
  38. $esc_name = DB::escape($esc_name);
  39. DB::query("insert into contests (name, start_time, last_min, status) values ('$esc_name', '$start_time_str', ${_POST['last_min']}, 'unfinished')");
  40. };
  41. $time_form->succ_href="/contests";
  42. $time_form->runAtServer();
  43. ?>
  44. <?php echoUOJPageHeader('添加比赛') ?>
  45. <h1 class="page-header">添加比赛</h1>
  46. <div class="tab-pane active" id="tab-time">
  47. <?php
  48. $time_form->printHTML();
  49. ?>
  50. </div>
  51. <?php echoUOJPageFooter() ?>