/** * Авторизация пользователя и формирование 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; }
<?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(); }