php - 在 PHP 中使用 HTTP 基本身份验证时如何在后台显示图像

标签 php http authentication

我使用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 2617RFC 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/

相关文章:

node.js - http-proxy 模块错误 : Must provide a proper URL as target

php - 如何使用 mockbin API 正确创建一个 bin?

node.js - 使用 react-devtools 破解身份验证

PHP 使用 session 登录

asp.net-mvc - 将 MVC 的 AuthorizeAttribute 与多组角色一起使用?

php - 在应该抛出 403 时抛出 404 响应

javascript - 基于 URL 变量域的重定向

Java 请求仅在以下情况下有效

PHP Session 的数据在页面重新加载之间不一致 - 尽管 Session ID 相同

php - 无法连接到 mySQL 数据库