我使用http身份验证方法,在用户登陆网页时立即向用户显示提示框。截至目前,当单击链接时,会打开一个提示框。但我希望先加载网页,然后再加载提示框。有没有办法可以将图像添加到背景?
if (($_SERVER['PHP_AUTH_USER'] != 'abcd') || ($_SERVER['PHP_AUTH_PW'] != 'abcd123'))
{
header('WWW-Authenticate: Basic Realm="Enter Your Credentials"');
header('HTTP/1.0 401 Unauthorized');
}
echo('You are valid');
最佳答案
对于基本 HTTP 身份验证,您必须在 HTTP header 中发送身份验证请求。欲了解更多信息,请查看这些白皮书:RFC 2617和 RFC 7235 (对此答案的评论中有进一步解释)。当然,这之前不允许任何其他数据(例如“背景 HTML”),因为您也可以在 header()
function 上的 PHP 手册中阅读:
Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP.
我建议使用另一种形式的身份验证,例如 Sessions例如。你可以看看this guide .
但是,如果您确实必须使用基本 HTTP 身份验证并希望在后台显示某些内容,则解决方法是使用两个文件和 <iframe>
:
background.html 将显示您想要的“背景 HTML”,并且是您将在浏览器中打开的文件:
<h1>Beautiful background</h1>
<!-- you can put your background HTML code here -->
<iframe src="login.php" />
login.php 必须包含用于基本 HTTP 身份验证的 PHP 代码,就像您在上面问题的示例中使用的代码一样。
关于php - 在 PHP 中使用 HTTP 基本身份验证时如何在后台显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36398031/