Exemplo n.º 1
0
$loginHelper = new LoginHelper($db);
if (!$loginHelper->IsLoggedIn()) {
    header('Location: ' . SITE_URL . 'login/');
    exit;
}
$mini = new Mini($db);
// Mini is the boss
$todaysLevel = $mini->getTodaysLevel();
if (isset($_GET['level']) && is_numeric($_GET['level']) && $_GET['level'] == $todaysLevel) {
    if ($todaysLevel > 9) {
        require DOCUMENT_ROOT . 'includes/html/event/mini_ended.php';
        exit;
    } elseif ($todaysLevel == 0) {
        require DOCUMENT_ROOT . 'includes/html/event/mini_not_started.php';
        exit;
    } elseif (!$mini->isLevelAvailable($todaysLevel)) {
        require DOCUMENT_ROOT . 'includes/html/event/mini_started.php';
        exit;
    }
    if ($mini->isAnswered()) {
        require DOCUMENT_ROOT . 'includes/html/event/mini_answered.php';
        exit;
    }
    $question = $mini->getQuestion($todaysLevel);
    $page = MINI_SERIES;
    /*	Prevent form spoofing */
    $spoof_proof = sha1(time() . chr(mt_rand(97, 122)));
    $_SESSION['spoof_proof'] = $spoof_proof;
} else {
    header('Location: ' . SITE_URL . 'mini/1.' . $todaysLevel . '/');
    exit;
require_once DOCUMENT_ROOT . 'config/db.php';
require DOCUMENT_ROOT . 'classes/Mini.php';
require DOCUMENT_ROOT . 'classes/Response.php';
// Create an instance of response class
$response = new Response();
/* Check if the user is logged in */
$loginHelper = new LoginHelper($db);
if (!$loginHelper->IsLoggedIn()) {
    $response->error('Not authorized!');
    $response->send();
    exit;
}
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['spoof_proof']) && $_POST['spoof_proof'] == $_SESSION['spoof_proof'] && isset($_POST['answer']) && isset($_POST['level'])) {
    $mini = new Mini($db);
    $level = $db->escape($_POST['level']);
    if ($mini->isLevelAvailable($level)) {
        $answer = preg_replace('/[\\s\\.\'\\",]+/i', '', strtolower($_POST['answer']));
        $answer = sha1($answer);
        if ($answer == $_SESSION['answer']) {
            $time = date('Y-m-d H:i:s', time());
            if ($db->insert('mini_gameplay', array('user_id' => $_SESSION['user_id'], 'level' => $mini->getTodaysLevel(), 'clear_time' => $time))) {
                $response->success();
            } else {
                $response->error('Unexpected error!');
            }
            $response->send();
            exit;
        } else {
            $response->success(false);
            $response->send();
            exit;