授权php脚本无法识别用户名和密码

时间:2012-03-21 20:45:58

标签: php authorization

所以我正在编写一个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代码段。

有什么想法吗?如果我需要提供更多信息,请告诉我。或者如果我需要澄清任何事情。提前感谢您的思考!

0 个答案:

没有答案