<?php
define('DB_HOST', 'localhost'); // Сервер
define('DB_NAME', '79998786090'); // Имя базы
define('DB_USER', '79998786090'); // Пользователь
define('DB_PASS', '1122334455'); // Пароль
$db = new PDO("mysql:host=" . DB_HOST . ";dbname=" . DB_NAME . ";charset=UTF8", DB_USER, DB_PASS);

error_reporting(- 1);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

#https://connect.ok.ru/oauth/authorize?client_id=1261984000&scope=VALUABLE_ACCESS&response_type=token&redirect_uri=https://legepoh.ru/okru.php&layout=m


include_once("OdnoklassnikiSDK.php");


/**
 * Авторизация через ОК, внешняя авторизация
 */

if (filter_has_var(INPUT_GET, 'code')) {

    if (!OdnoklassnikiSDK::checkCurlSupport()) {
        print "У вас не установлен модуль curl, который требуется для работы с SDK одноклассников.  Инструкция по установке есть, например, <a href=\"http://www.php.net/manual/en/curl.installation.php\">здесь</a>.";
        return;
    }

    if (!is_null(OdnoklassnikiSDK::getCode())) {
        if (OdnoklassnikiSDK::changeCodeToToken(OdnoklassnikiSDK::getCode())) {

            $current_user = OdnoklassnikiSDK::makeRequest("users.getCurrentUser", array("fields" => "name, gender"));

            $sex = 'w';
            if ($current_user['gender'] == 'male') {
                $sex = 'm';
            }

            $uid = intval($current_user['uid']);


            if ($db->query("SELECT COUNT(*) FROM `users` WHERE `uid_ok` = '" . $uid . "'")->fetchColumn() == false) {
                $pass = mt_rand(123456, 1234567890);

                $db->prepare("INSERT INTO `users` SET `login` = ?, `password` = ?, `sex` = ?, `uid_ok` = ?,  `side` = ?, `duel_fight` = ? ,`save` = ?, `almaz` = ?, `registr` = ?")->execute([
                    $uid,
                    md5($pass),
                    $sex,
                    $uid,
                    'good',
                    20,
                    0,
                    100,
                    time()
                ]);


                if (isset($_SESSION['ref'])) {
                    $db->exec("UPDATE `users` SET `id_partner` = '" . intval($_SESSION['ref']) . "' WHERE (`uid_ok` = '" . $uid . "')");
                }

                setcookie('login', $uid, time() + 86400 * 365, '/');
                setcookie('password', md5($pass), time() + 86400 * 365, '/');

            } else {
                $userUid = $db->query("SELECT `login`, `password` FROM `users` WHERE `uid_ok` = '" . $uid . "' LIMIT 1")->fetch(PDO::FETCH_ASSOC);

                setcookie('login', $userUid['login'], time() + 86400 * 365, '/');
                setcookie('password', $userUid['password'], time() + 86400 * 365, '/');

            }
            header('location: /');
            exit();
        }
    } else {
        printf("<div><a class=\"odkl-oauth-lnk\" href=\"%s\"></a></div>", OdnoklassnikiSDK::getAuthorizeUrl());
    }
}
