【发布时间】:2013-10-21 13:14:01
【问题描述】:
我一直在这个网站上工作,该网站应该使用带有 htpasswd 的 HTTP 基本身份验证。身份验证本身就像一个魅力,但有时(并非总是)$_SERVER['PHP_AUTH_USER'] 是空的。
我得到了改用 REMOTE_USER 的建议,它也只是不时起作用。 我正在使用 PHP 作为 Apache 的 CGI 插件,不幸的是,其他任何事情都是不可能的。该网站通过 HTTPS 进行 SSL 加密。
为什么会这样?
【问题讨论】:
-
您是否能够调查哪些用户名是空的?我建议使用:
$user = (strlen($_SERVER['PHP_AUTH_USER']) > 0) ? $_SERVER['PHP_AUTH_USER'] : $_SERVER['REMOTE_USER']; -
如果不是因为大多数时候 PHP_AUTH_USER 和 REMOTE_USER 都是空的,这将是一个好主意。