我正在使用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');
答案 0 :(得分:2)
对于基本HTTP身份验证,您必须在HTTP标头中发送身份验证请求。有关详细信息,请查看以下白皮书:RFC 2617和RFC 7235(对此答案的评论中的进一步说明)。当然,这不允许之前的任何其他数据(例如"后台HTML"),因为您还可以阅读header()
function上的PHP手册:
请记住,在任何实际输出之前必须调用header() 通过普通HTML标记,文件中的空行或PHP发送。
我建议使用其他形式的身份验证,例如Sessions。您可以查看this guide。
但是,如果您确实 使用基本HTTP身份验证并希望在后台显示内容,则解决方法是使用两个文件<iframe>
:
background.html 会显示您想要的&#34;后台HTML&#34;并且是您将在浏览器中打开的文件:
<h1>Beautiful background</h1>
<!-- you can put your background HTML code here -->
<iframe src="login.php" />
login.php 必须包含基本HTTP身份验证的PHP代码,就像您在上述问题中的示例中使用的代码一样。
答案 1 :(得分:0)
不,您无法使用基本HTTP身份验证方法发送背景图片。
但是,您可以显示带有一些花哨的grafics和简单的名称/密码形式的单独样式的页面。提交正确的凭据后,将用户存储在会话中。这意味着您必须在每个页面上检查会话。