Http认证,取消循环

Http Authentication , Cancel Loop

<?php
    if (!isset($_SERVER['PHP_AUTH_USER'])) {
        header('WWW-Authenticate: Basic realm="My Realm"');
        header('HTTP/1.0 401 Unauthorized');
        echo 'Text to send if user hits Cancel button';
        exit;
    } else {
        echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
        echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
    }
?>

我正在使用此代码,它只要求用户名和密码进行身份验证,但问题是当用户单击取消按钮时,它应该一次又一次地给出身份验证提示,直到没有提供正确的用户名和密码。

假设您的客户都有 JavaScript.

,可以实施一个简单的修复

而不是echo 'Text to send if user hits Cancel button';

echo '<script>window.location.reload();</script>';

我觉得

header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']); 
exit();

会在 php

工作