所以我正在编写一个php脚本,该脚本应该强制用户输入用户名和密码来查看网页上的链接,但由于某种原因,当您输入时,提示用户的弹出窗口不会消失在正确的用户/密送组合中。相反,它只是重新出现,空白,再次向用户询问用户/ pw。我对此进行了一段时间的研究,发现我需要将此行添加到我的授权脚本中:
list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));
这解决了这个问题。用户将输入正确的组合,然后被允许进入该站点。但我们只是将网站移到了新服务器上,旧的问题又回来了。再次,你输入正确的用户/ pw和......没有任何反应。提示刚刚重新出现,空白。我不确定如何对此进行故障排除。我确实尝试删除之前修复它的行,但我得到了相同的结果。服务器上是否存在影响此类事情的某些设置?这是脚本:
<?php
//User name and password for authentication
list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));
//these are real words..obviously I suppose. I just starred them out for this
//question
$username='******';
$password='******';
if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW']) ||
($_SERVER['PHP_AUTH_USER'] != $username) || ($_SERVER['PHP_AUTH_PW'] != $password))
{
//then the user and pw are incorrect so send headers
header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate:Basic Realm="Henrys Home"');
exit('<h2>Henrys Home</h2> Sorry, you must enter a valid username and password to enter this page. Click <a href = "../index.html">here</a>' .
' to go back to the main page.');
}
?>
然后在需要安全性的文件顶部,我会包含指向我的授权脚本的require_once代码段。
有什么想法吗?如果我需要提供更多信息,请告诉我。或者如果我需要澄清任何事情。提前感谢您的思考!