<?php if (!Auth::check()) { redirectToLogin(); } if (!isNormalUser($myUser)) { become403Page(); } requireLib('bootstrap5'); requirePHPLib('form'); if (!isSuperUser($myUser)) { become403Page(); } $time_form = new UOJForm('time'); $time_form->addVInput( 'name', 'text', '比赛标题', 'New Contest', function($str) { return ''; }, null ); $time_form->addVInput( 'start_time', 'text', '开始时间', date("Y-m-d H:i:s"), function($str, &$vdata) { try { $vdata['start_time'] = new DateTime($str); } catch (Exception $e) { return '无效时间格式'; } return ''; }, null ); $time_form->addVInput( 'last_min', 'text', '时长(单位:分钟)', 180, function($str) { return !validateUInt($str) ? '必须为一个整数' : ''; }, null ); $time_form->handle = function(&$vdata) { $start_time_str = $vdata['start_time']->format('Y-m-d H:i:s'); $purifier = HTML::purifier_inline(); $esc_name = $_POST['name']; $esc_name = $purifier->purify($esc_name); $esc_name = DB::escape($esc_name); DB::query("insert into contests (name, start_time, last_min, status) values ('$esc_name', '$start_time_str', ${_POST['last_min']}, 'unfinished')"); }; $time_form->succ_href="/contests"; $time_form->runAtServer(); ?> <?php echoUOJPageHeader('添加比赛') ?> <div class="row"> <div class="col-lg-9"> <div class="card card-default mb-2"> <div class="card-body"> <h1 class="h2 card-title">添加比赛</h1> <div class="w-full" style="max-width: 400px"> <?php $time_form->printHTML(); ?> </div> </div> </div> </div> <!-- right col --> <aside class="col-lg-3 mt-3 mt-lg-0"> <?php uojIncludeView('sidebar', array()) ?> </aside> </div> <?php echoUOJPageFooter() ?>