Example #1
0
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;