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;
<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 {