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

发布于 2024-11-01 16:49:51 字数 679 浏览 1 评论 0原文

亲爱的朋友们, 访问特定 php 页面的密码保护似乎存在问题:
@ 当我嵌入此测试代码时,我会很好地看到一个弹出的身份验证对话框。
@ 如果我填写字段并按 Enter 键,页面上不会显示密码/登录名!
@它只是再次向我展示带有空字段的身份验证对话框...一次又一次 @ 尝试了 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 with PHP 5.2.3 并且在 apache htacces 或其他任何地方都没有设置密码

Dear folks,
There seems to be a problem with password protection for accessing a particular php page:
@ When I embed this test code, I am presented nicely with a popup authentification dialog.
@ If I fill in the fields and press enter, it does not show the password/login on the page!
@ It just presents me again the auth dialog with emptied fields... again and again
@ After 3 tries orso it sais unauthorised to access...

What could be going on? Thanks very much for your suggestions!

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 with PHP 5.2.3 and nowhere else is password set in apache htacces or anything

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

水中月 2024-11-08 16:49:51

PHP_AUTH_USER 最多可用于 mod_php 设置。对于 CGI 或 FastCGI 设置,您必须手动解组 HTTP_AUTHORIZATION 标头。更糟糕的是,出于安全原因,它通常不存在。 ( 使用 PHP 进行基本身份验证会产生无限循环 )

您必须使用 phpinfo() 检查您可以使用哪种变体。然后应用 http 中的注释中的更复杂的示例之一: //www.php.net/manual/en/features.http-auth.php#94349

PHP_AUTH_USER is available for mod_php setups at best. For CGI or FastCGI setups you will have to manually unmarshall the HTTP_AUTHORIZATION header. To make matters worse, it is often not present for security reasons. ( Basic Authentication with PHP gives an endless loop )

You will have to check with phpinfo() which variant you can use. Then apply one of the more complex examples from the comments in http://www.php.net/manual/en/features.http-auth.php#94349

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文