$ _SERVER ['PHP_AUTH_USER']为空

时间:2012-09-24 02:08:32

标签: php

我试图更新我的VPS的php版本,但它没有用,我的提供商没有帮助我,所以我将它降级到以前的版本。

我现在正在使用PHP 5.2.17(cli)。在这个版本中,一切都正常。

自此升级和降级以来,变量$_SERVER['PHP_AUTH_USER']为空。 (在php.ini中,register_globals为'on'且$_SERVER['PHP_SELF']正常工作)。

它正确地问我的用户名和密码以及我成功连接但我需要使用$_SERVER['PHP_AUTH_USER']

我尝试$_SERVER['PHP_AUTH_USER']$_SERVER['AUTH_USER']$_SERVER['REMOTE_USER']坚果没有效果。 (但我永远不会得到任何错误,只是一个空白值...)

2 个答案:

答案 0 :(得分:12)

我终于找到了答案,感谢'mbinette'。

在我的PHP配置中,PHP 5的处理程序是CGI,这种类型的身份验证不适用于PHP CGI。所以我把它改成了suPHP(它应该是APACHE上的默认值)。

Find here一篇解释使用CGI和PHP_AUTH的方法的帖子,但是我尝试了它并没有用。

Find here关于php处理程序的一些解释

答案 1 :(得分:3)

安全模式是否已激活?那可能是你的问题......

  

从PHP 4.3.0开始,为了防止有人编写脚本   它显示通过a验证的页面的密码   传统的外部机制,PHP_AUTH变量不会被设置   如果为该特定页面启用了外部身份验证   安全模式已启用。无论如何,REMOTE_USER可用于识别   外部认证的用户。所以,你可以使用   $ _SERVER [ 'REMOTE_USER']。

来源:http://php.net/manual/en/features.http-auth.php