【问题标题】:$_SERVER['PHP_AUTH_USER'] is empty$_SERVER['PHP_AUTH_USER'] 为空
【发布时间】:2012-09-24 02:08:32
【问题描述】:

我尝试更新我的 VPS 的 php 版本,但没有成功,而且我的提供商也没有很好地帮助我,所以我将它降级到以前的版本。

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

自本次升级降级以来,变量$_SERVER['PHP_AUTH_USER']为空。 (在 php.ini 中,register_globals 处于“开启”状态,$_SERVER['PHP_SELF'] 工作正常)。

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

我试过$_SERVER['PHP_AUTH_USER']、$_SERVER['AUTH_USER']、$_SERVER['REMOTE_USER'] 螺母没有工作。 (但我从来没有得到任何错误,只是一个空白值......)

【问题讨论】:

    标签: php


    【解决方案1】:

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

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

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

    Find here关于php handlers的一些解释

    【讨论】:

    • 很高兴您找到了解决方案!老实说,我对它可能是什么一无所知(我唯一遇到的问题是因为安全模式)..!干杯!
    【解决方案2】:

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

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

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

    【讨论】:

    • 在我的 php.ini 文件中,我有:safe_mode = Off
    • 您确定问题出在 PHP 上吗? (而不是这样的:stackoverflow.com/questions/5037046/serverphp-auth-user-empty?)。另外,您能否确保 error_reporting 已打开并且在此之前没有引发任何错误?
    • 我看到它可能不适用于 php cgi,但我怎么知道要使用哪个处理程序?我可以选择:suphp、dso、cgi 和无?
    猜你喜欢
    • 2013-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-03
    • 2013-06-01
    • 1970-01-01
    • 2011-05-29
    相关资源
    最近更新 更多