Итак, как защитить страницу паролем, не затрагивая при этом .htaccess? Можно воспользоваться Basic авторизацией средствами PHP.
<?php
$login="Vasya";
$password="Pupkin";
if (!isset($_SERVER['PHP_AUTH_USER']) && !isset($_SERVER['PHP_AUTH_PW'])) {
header('WWW-Authenticate: Basic realm="Who u?"');
}
if ((!isset($_SERVER['PHP_AUTH_USER'])) || (!isset($_SERVER['PHP_AUTH_PW']))) {
header('WWW-Authenticate: Basic realm="Who u?"');
header('HTTP/1.0 401 Unauthorized');
}
if ($_SERVER['PHP_AUTH_USER']!=$login|| $_SERVER['PHP_AUTH_PW']!=$password) {
header('WWW-Authenticate: Basic realm="Who u?"');
header('HTTP/1.0 401 Unauthorized');
echo "<strong>Ты не пройдешь!</strong>";
exit();
}
if ((!isset($_SERVER['PHP_AUTH_USER'])) || (!isset($_SERVER['PHP_AUTH_PW']))) {
echo "<strong>Введите логин и пароль</strong>";
exit();
}
?>
Где $login и $password — Логин и пароль для авторизации (спасибо Капитан Очевидность).
Теперь, чтобы защитить определённую страницу сайта вставляем код
require_once("password.php");
Зачем нужно защищать отдельную страницу паролем? Ну например, для защиты конкретного скрипта без авторизации, или для дополнительной защиты страницы авторизации администратора. Да мало ли?
Ставил на dle для защиты файла admin.php, не работает…
password.php должен находится в той же папке что и admin.php
Второй if не нужен, если одного из параметров нет, до него просто не дойдёт.
Это же мой быдлокодинг. Если выполняет свою функцию, я и доволен. Всё таки с .htaccess проще
Куда деть созданное «password.php»?
куда вставить require_once(«password.php»); (в какое место страницы)
если помогаете то помогайте почеловечески.