Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中使用HTTP基本身份验证时如何在后台显示图像_Php_Http_Authentication - Fatal编程技术网

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

在PHP中使用HTTP基本身份验证时如何在后台显示图像,php,http,authentication,Php,Http,Authentication,我正在使用http身份验证方法在用户登陆网页时立即向其显示一个提示框。现在,当点击链接时,会打开一个提示框。但我希望加载网页,然后加载提示框。有没有一种方法可以将图像添加到背景中 如果$\u服务器['PHP\u AUTH\u USER']!='abcd'| |$_服务器['PHP_AUTH_PW']!='abcd123' { 标题“WWW-Authenticate:Basic Realm=输入您的凭据”; 标题“HTTP/1.0 401未经授权”; } 回声“你是有效的”; 对于基本HTTP身份

我正在使用http身份验证方法在用户登陆网页时立即向其显示一个提示框。现在,当点击链接时,会打开一个提示框。但我希望加载网页,然后加载提示框。有没有一种方法可以将图像添加到背景中

如果$\u服务器['PHP\u AUTH\u USER']!='abcd'| |$_服务器['PHP_AUTH_PW']!='abcd123' { 标题“WWW-Authenticate:Basic Realm=输入您的凭据”; 标题“HTTP/1.0 401未经授权”; } 回声“你是有效的”;
对于基本HTTP身份验证,必须在HTTP头中发送身份验证请求。有关更多信息,请参阅这些白皮书:并在对此答案的评论中作进一步解释。当然,这不允许使用任何其他数据,例如背景HTML,因为您也可以在以下网站上阅读PHP手册:

请记住,必须在调用任何实际输出之前调用标头 通过普通HTML标记、文件中的空行或PHP发送

我建议使用另一种形式的身份验证,例如。你可以看看

但是,如果您确实必须使用基本HTTP身份验证并希望在后台显示某些内容,则解决方法是使用两个文件和:

background.html将显示所需的背景html,并且是您将在浏览器中打开的文件:

<h1>Beautiful background</h1>
<!-- you can put your background HTML code here -->

<iframe src="login.php" />

login.php必须包含用于基本HTTP身份验证的php代码,就像您在上面问题的示例中使用的代码一样。

否,您不能使用基本HTTP身份验证方法发送背景图像


但是,您可以显示一个单独样式的页面,其中包含一些奇特的图形和一个简单的名称/密码表单。提交正确的凭据后,将用户存储在会话中。这意味着您必须检查每个页面上的会话。

当您希望在未输入有效凭据的情况下向用户显示网页时,如果没有密码保护,您为什么要求输入密码?我这样做是为了我的本地网络。专门用于办公室用途。但我不想让我的用户看到一个空白页。实际上,你的PHP会将数据发送到浏览器,不管是否有其他的、死的或返回的会终止执行,因此你的秘密在请求中。浏览器只是没有渲染它。实现基本HTTP身份验证而不是会话的原因是什么?是否可以在提示框显示时显示背景样式?RFC 2617已经更新了很长一段时间。请用它作为参考。没错,但不仅仅是。WWW-Authenticate在所有版本的HTTP/1.x中都有效,rfc7235提供了更好的概述,IMHO。无论如何,在这个时代使用HTTP/1.0需要非常特殊的原因@你为我的问题提供了一个完美的例子。它现在运转良好。谢谢你的帮助:。