【发布时间】:2011-03-08 14:39:37
【问题描述】:
我喜欢这种对一些非关键页面的简单 http 身份验证。
<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized');
echo 'Text, der gesendet wird, falls der Benutzer auf Abbrechen drückt';
exit;
} else {
echo "<p>Hallo {$_SERVER['PHP_AUTH_USER']}.</p>";
echo "<p>Sie gaben {$_SERVER['PHP_AUTH_PW']} als Passwort ein.</p>";
}
?>
现在我正在尝试使用 php 5.3 在服务器上实现它,但它不起作用。 怎么了?
我输入名称和密码,按回车键,页面再次显示我的对话框。 $_SERVER['PHP_AUTH_USER'] 中没有值。
【问题讨论】:
-
PHP 是否作为 Apache 模块运行?
-
“它不起作用。”没有清楚地描述出了什么问题。
-
你为什么不输入你的登录名,更新脚本做一个
var_dump($_SERVER);exit;,然后按提交? -
这是来自php.net/manual/en/features.http-auth.php 的示例代码 - 您还应该阅读大量示例,尤其是涉及 HTTP_AUTHORIZATION 和 REDIRECT_ 变量的示例,它们可以交替设置(取决于 PHP SAPI 和 Apache 配置) .