function DBNewContest($param = array(), $c = null) { $cw = false; if ($c == null) { $cw = true; $c = DBConnect(); DBExec($c, "begin work", "DBNewContest(begin)"); } $a = DBGetRow("select max(contestnumber) as contest from contesttable", 0, $c, "DBNewContest(max(contest))"); if ($a == null) { $n = 1; } else { $n = $a["contest"] + 1; } $ac = array('name', 'startdate', 'duration', 'lastmileanswer', 'lastmilescore', 'penalty', 'updatetime', 'localsite', 'mainsite', 'mainsiteurl', 'keys', 'unlockkey'); //'active' $type['startdate'] = 1; $type['duration'] = 1; $type['lastmileanswer'] = 1; $type['lastmilescore'] = 1; $type['penalty'] = 1; $type['updatetime'] = 1; $type['mainsite'] = 1; $type['localsite'] = 1; $mainsiteurl = ''; $keys = ''; $unlockkey = ''; foreach ($ac as $key) { if (isset($param[$key]) && (!isset($type[$key]) || is_numeric($param[$key]))) { ${$key} = sanitizeText($param[$key]); } else { ${$key} = ""; } } if ($mainsite == "") { $mainsite = 1; } if ($localsite == "") { $localsite = 1; } if ($name == "") { $name = "Contest"; } if ($startdate == "") { $startdate = "EXTRACT(EPOCH FROM now())+600"; } if ($duration == "") { $duration = 300 * 60; } if ($lastmileanswer == "") { $lastmileanswer = 285 * 60; } if ($lastmilescore == "") { $lastmilescore = 240 * 60; } if ($penalty == "") { $penalty = 20 * 60; } //if($active=="") $active = "f"; if ($updatetime == "") { $updatetime = time(); } DBExec($c, "insert into contesttable (contestnumber, contestname, conteststartdate, contestduration, " . "contestlastmileanswer, contestlastmilescore, contestlocalsite, contestpenalty, " . "contestmaxfilesize, contestactive, contestmainsite, contestmainsiteurl,contestkeys,contestunlockkey, updatetime) values ({$n}, '{$name}', " . "{$startdate}, {$duration}, {$lastmileanswer}, " . "{$lastmilescore}, {$localsite}, {$penalty}, 100000, '{$active}', {$mainsite}, '{$mainsiteurl}', '{$keys}','{$unlockkey}',{$updatetime})", "DBNewContest(insert contest)"); DBNewSite($n, $c, $param); insertanswers($n, $c); insertlanguages($n, $c); DBinsertfakeproblem($n, $c); if ($cw) { DBExec($c, "commit work", "DBNewContest(commit)"); } LOGLevel("User " . $_SESSION["usertable"]["username"] . "/" . $_SESSION["usertable"]["usersitenumber"] . " created a new contest ({$n}).", 2); return $n; }
$bocadir = trim($pif['bocadir']) . $ds . 'src'; } else { $bocadir = getcwd(); } if (is_readable($bocadir . $ds . '..' . $ds . 'db.php')) { require_once $bocadir . $ds . '..' . $ds . 'db.php'; } else { if (is_readable($bocadir . $ds . 'db.php')) { require_once $bocadir . $ds . 'db.php'; } else { echo "unable to find db.php"; exit; } } if (getIP() != "UNKNOWN" || php_sapi_name() !== "cli") { exit; } ini_set('memory_limit', '600M'); ini_set('output_buffering', 'off'); ini_set('implicit_flush', 'on'); @ob_end_flush(); if (system('test "`id -u`" -eq "0"', $retval) === false || $retval != 0) { echo "Must be run as root\n"; exit; } echo "\nType the contest number to re-insert the languages: "; $resp = strtoupper(trim(fgets(STDIN))); if (is_numeric($resp)) { insertlanguages($resp, null); } exit;