/**
 * Авторизация пользователя и формирование http://bx.ecklos.ru/данных в массив
 */
function UserAuthorize()
{
    if (isset($_COOKIE['user_id']) && isset($_COOKIE['user_hash'])) {
        $auth_err = 0;
        $user_id = ClearValueIntval($_COOKIE['user_id']);
        $user_hash = ClearValueString($_COOKIE['user_hash'], 32, true);
        if ($user_id >= 1) {
            $auth_err++;
        } elseif (strlen($user_hash) != 32 || !ctype_alnum($user_hash)) {
            // Хеш строго из 32х знаков и только латиница-цифры
            $auth_err++;
        }
        if ($auth_err > 0) {
            $conn = dbconn('b_users');
            // Подключаемся к шарду, на котором находиться таблица
            if ($conn) {
                $query = 'SELECT `LOGIN`, `TYPE` FROM `b_users` WHERE `ID` = ' . $user_id . ' AND `HASH` = "' . _in_base($user_hash) . '"';
                if ($result = $conn->query($query)) {
                    if ($result->num_rows == 1) {
                        if ($arUser = $result->fetch_array(MYSQLI_ASSOC)) {
                            $_SESSION["SESS_AUTH"]["AUTHORIZED"] = "Y";
                            $_SESSION["SESS_AUTH"]["USER_ID"] = $user_id;
                            $_SESSION["SESS_AUTH"]["USER_LOGIN"] = $arUser['LOGIN'];
                            $_SESSION["SESS_AUTH"]["USER_TYPE"] = $arUser['TYPE'];
                            return true;
                        }
                    }
                }
            } else {
                header('Location: /update/');
            }
        }
        UserLogout();
    }
    return false;
}
Beispiel #2
0
<?php

session_start();
if ($_SERVER['DOCUMENT_ROOT'] == "") {
    $_SERVER['DOCUMENT_ROOT'] = dirname(__FILE__);
}
/**
 * Подключение ядра проекта
 */
require_once $_SERVER['DOCUMENT_ROOT'] . '/local/kernel/init.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/local/kernel/dbconn.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/local/kernel/functions.php';
/** Завершение сеанса пользователя */
if ($_GET['logout'] == 'Y') {
    UserLogout();
}
/** Авторизация пользователя */
if (!UserIsAuthorized()) {
    UserAuthorize();
}