我试图更新我的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']
坚果没有效果。 (但我永远不会得到任何错误,只是一个空白值...)
答案 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']。