Ejemplo n.º 1
0
// Чтение входных данных
$project = filter_input(INPUT_GET, 'project', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH);
$nickname = filter_input(INPUT_GET, 'nickname', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH);
$token = filter_input(INPUT_GET, 'token', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH);
// Хак, пока на МЦТопе не поправят запрос по тикету...
if (strstr($project, "?nickname=") != false) {
    $exploded = explode("?nickname=", $project);
    $project = $exploded[0];
    $nickname = $exploded[1];
}
// Проверка корректности кода проекта
if (isset($project) && strlen($project) == 5) {
    $project = getProjectDetails($project);
} else {
    responseWithError("You cannot vote without project code");
}
if (isset($nickname) && isset($token)) {
    $calcToken = md5($nickname . $project['secret_keyword']);
    if ($token == $calcToken) {
        $uuid = findProfileByName($nickname);
        if ($uuid == false) {
            responseWithError("Profile not found");
        }
        // Поощрение
        voteOnTopAccepted($uuid, "mctop.su");
        // Запись лога
        writeAccountLog($uuid, "Пользователь {$nickname} проголосовал на mctop.su и получил {$voteMoneyToAdd} монет.");
        die("OK");
    }
}
responseWithError("Parameters are incorrect");
Ejemplo n.º 2
0
define('METHUSELAH_INCLUDE_CHECK', true);
define('METHUSELAH_INCLUDE_VOTES_CHECK', true);
require_once "../toolbox_internal.php";
// Это должно быть где-то в опциональных настройках проекта
$topcraft_secret = $methuselah["votes-topcraft-secret"];
// Чтение входных данных
$project = filter_input(INPUT_GET, 'project', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH);
$username = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH);
$timestamp = filter_input(INPUT_POST, 'timestamp', FILTER_VALIDATE_INT);
$token = filter_input(INPUT_POST, 'signature', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH);
// Проверка корректности кода проекта
if (isset($project) && strlen($project) == 5) {
    $project = getProjectDetails($project);
} else {
    responseWithError("You cannot vote without project code");
}
if (isset($username) && isset($timestamp) && isset($token)) {
    $calcToken = sha1($username . $timestamp . $topcraft_secret);
    if ($token == $calcToken) {
        $uuid = findProfileByName($username);
        if ($uuid == false) {
            responseWithError("Profile not found");
        }
        // Поощрение
        voteOnTopAccepted($uuid, "topcraft.ru");
        // Запись лога
        writeAccountLog($uuid, "Пользователь {$username} проголосовал на topcraft.ru и получил {$voteMoneyToAdd} монет.");
        die("OK");
    }
}
responseWithError("Parameters are incorrect");