第二次加载页面后,http身份验证在php中不起作用 两天前,我在php中了解了这种身份验证,并在一个实践网站上进行了应用

第二次加载页面后,http身份验证在php中不起作用 两天前,我在php中了解了这种身份验证,并在一个实践网站上进行了应用,php,http-authentication,Php,Http Authentication,第一次加载此页面时,它可以正常工作,但一旦在用户名和密码字段中输入了任何错误值,单击取消按钮并进一步加载页面不会返回该验证窗口。 可能会出现缓存问题,请建议我如何让页面在每次加载时询问身份验证,除了通过浏览器保存密码连接到数据库已在serverconnect.php页面中完成我认为他必须先连接才能使用mysqli\u real\u escape\u string考虑阅读Q/A,表示它已缓存,您需要另一个会话变量来记住登录。 <?php require_once('serverconnect

第一次加载此页面时,它可以正常工作,但一旦在用户名和密码字段中输入了任何错误值,单击取消按钮并进一步加载页面不会返回该验证窗口。
可能会出现缓存问题,请建议我如何让页面在每次加载时询问身份验证,除了通过浏览器保存密码

连接到数据库已在serverconnect.php页面中完成我认为他必须先连接才能使用mysqli\u real\u escape\u string考虑阅读Q/A,表示它已缓存,您需要另一个会话变量来记住登录。
<?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>';
?>