问题:密码保护特定的PHP5页面

时间:2011-04-13 07:03:06

标签: php authentication password-protection

亲爱的朋友们, 用于访问特定php页面的密码保护似乎存在问题:
@当我嵌入这个测试代码时,我很好地使用了一个弹出的身份验证对话框 @如果我填写字段并按回车键,则不会在页面上显示密码/登录信息! @它再次向我展示了带有空字段的auth对话框......一次又一次 @经过3次尝试后,未经授权访问...

可能发生什么事?非常感谢您的建议!

if (!isset($_SERVER['PHP_AUTH_USER'])) {
     header('WWW-Authenticate: Basic realm="My Realm"');
     header('HTTP/1.0 401 Unauthorized');
     echo 'Text to send if user hits Cancel button';
     exit;
} else {
     echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
     echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
}

Ive Apache 2.0x Fedora与PHP 5.2.3并没有其他地方在apache htacces或任何其他地方设置密码

1 个答案:

答案 0 :(得分:3)

PHP_AUTH_USER最多可用于mod_php设置。对于CGI或FastCGI设置,您必须手动取消编组HTTP_AUTHORIZATION标头。更糟糕的是,出于安全原因,通常不会出现这种情况。 (Basic Authentication with PHP gives an endless loop

您必须使用phpinfo()检查您可以使用哪种变体。然后从http://www.php.net/manual/en/features.http-auth.php#94349

中的注释中应用一个更复杂的示例