Взрывной блог

Как защитить страницу паролем

Итак, как защитить страницу паролем, не затрагивая при этом .htaccess? Можно воспользоваться Basic авторизацией средствами PHP.

Защита паролем

Защита страницы паролем

Создаём страницу, с произвольным именем, например password.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");

Зачем нужно защищать отдельную страницу паролем? Ну например, для защиты конкретного скрипта без авторизации, или для дополнительной защиты страницы авторизации администратора. Да мало ли?

Exit mobile version