Esempio n. 1
0
define("ORDERS_LOG", "orders.txt");
// конст.для хранения имени файла с личн.данными пользователей(это обычный txt-файл)
//---------------------------------------------------------------------------------------------------------------------
if (!isset($_SERVER['PHP_AUTH_USER']) && !isset($_SERVER['PHP_AUTH_PW'])) {
    // если поля Аутоитентификации пусты
    header('WWW-Authenticate: Basic realm="AUTORIZATION FOR SUPER_USER"');
    header('HTTP/1.0 401 Unauthorized');
    exit('Доступ закрыт! Вам необходимо авторизироваться как Администратору сайта!');
}
if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {
    //1_if
    $login = $_SERVER['PHP_AUTH_USER'];
    // если поля Аутоитентификации НЕ пусты, ложим содержимое в переменную для дальнейшей ее проверки
    $password = $_SERVER['PHP_AUTH_PW'];
    // если поля Аутоитентификации НЕ пусты, ложим содержимое в переменную для дальнейшей ее проверки
    if ($result = f_superUserExists($login)) {
        //2_if - передаем $login в ф-ю проверки login на имеющиеся данные ф файле(.htpasswd) с SuperUser'ами
        list($user, $res_hash, $salt, $iteration_count) = explode("|", $result);
        // разбиваем строку, login которой совпал с $login введенным при Аутентификации и раскидываем эту строку по переменным
        if (f_getHash($password, $salt, $iteration_count) == $res_hash) {
            echo "Вы вошли как Super User: {$login}";
        } else {
            header('WWW-Authenticate: Basic realm="AUTORIZATION FOR SUPER_USER"');
            header('HTTP/1.0 401 Unauthorized');
            exit;
        }
        // иначе в окно Авторизации
    } else {
        header('WWW-Authenticate: Basic realm="AUTORIZATION FOR SUPER_USER"');
        header('HTTP/1.0 401 Unauthorized');
        exit;
Esempio n. 2
0
	<div align='center'> <a href='index.php'>АДМИНКА-ГЛАВНАЯ</a> </div>
	<br>

	<h1>Создание СуперЮзера(администратора)</h1>
<?php 
// BLOCK: создание нового SuperUser(Админа) с хешированием пароля или проверка существующего SuperUser(Админа),если такой уже имеется: START
if (!$salt) {
    // если не задана соль, то генерируем ее сами, автоматически
    $salt = str_replace('=', '', base64_encode(md5(microtime() . $eny_code)));
    // после(base64_encode) в конце всегда появляется символы "=".Используем ф-ю(str_replace),чтобы убрать их и заменить на пустоту
}
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    //если была отправлена Форма методом 'POST'
    $user = $_POST['user'] ?: $user;
    //если есть $_POST['user'],то в $user ложим $_POST['user'], ИНАЧЕ в $user ложим значение($user) то,что по-умолчанию инициализированно выше
    if (!f_superUserExists($user)) {
        // ПРОВЕРКА. если в файле(.htpasswd) с СуперЮзерами нет такого СуперЮзера как в ($user) из Формы ввода,то...
        $string = $_POST['string'] ?: $string;
        // аналогично строке: $user = $_POST['user'] ?: $user;
        $salt = $_POST['salt'] ?: $salt;
        // аналогично строке: $user = $_POST['user'] ?: $user;
        $iteration_count = (int) $_POST['iteration_count'] ?: $iteration_count;
        // аналогично строке: $user = $_POST['user'] ?: $user;
        $res_hash = f_getHash($string, $salt, $iteration_count);
        // генерирование Хеш пароля
        $alarm = 'Хеш пароля для SuperUser ' . $user . ' успешно сгенерирован!';
        // $alarm -для вывода Юзеру сообщения результата
        if (f_addSuperUser($user, $res_hash, $salt, $iteration_count)) {
            // если f_addSuperUser отработала-(добавила новую запись для СуперЮзера в файл(.htpasswd))
            $alarm = 'SuperUser ' . $user . ' с указанными данными успешно добавлен!';
        } else {