<?php
require_once('serverconnect.php');
if(!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW'])) {
header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate: Basic realm="Mismatch"');
exit('<center><h1>Sorry, you must be logged in to access this website</h1></center>');
}
$dbc = connect();
$username = mysqli_real_escape_string($dbc, trim($_SERVER['PHP_AUTH_USER']));
$password = mysqli_real_escape_string($dbc, trim($_SERVER['PHP_AUTH_PW']));
$query = "select user_id, username from mismatch_user where username='$username' and pass=SHA1('$password')";
$result = mysqli_query($dbc, $query) or die('Error in querying the database');
if(mysqli_num_rows($result) == 1) {
$row = mysqli_fetch_array($result);
$username = $row['username'];
$password = $row['pass'];
}
else {
header('HTTP/1.1 401 Unauthorized');
header('WWW-Auhtenticate: Basic realms="Mismatch"');
exit('<center><h1>Sorry, you must be logged in to access this website</h1></center>');
}
echo '<p> You are looged in as'.$username.'</p>';
?>
Он работает нормально, когда эта страница загружается в первый раз, но после ввода неверного значения в поле имени пользователя и пароля, нажатие кнопки отмены и дальнейшая загрузка страницы не возвращает это окно аутентификации.
Может быть, возникнет проблема с кешем, подскажите, пожалуйста, что мне делать, чтобы страница запрашивала аутентификацию при каждой загрузке, кроме сохранения пароля браузером.
Задача ещё не решена.
Других решений пока нет …