Итак, как защитить страницу паролем, не затрагивая при этом .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");
Зачем нужно защищать отдельную страницу паролем? Ну например, для защиты конкретного скрипта без авторизации, или для дополнительной защиты страницы авторизации администратора. Да мало ли?
