Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP&;HTTP身份验证-使用筛选器_输入获取登录名和密码_Php_Http Authentication - Fatal编程技术网

PHP&;HTTP身份验证-使用筛选器_输入获取登录名和密码

PHP&;HTTP身份验证-使用筛选器_输入获取登录名和密码,php,http-authentication,Php,Http Authentication,我试图使用filter_输入从PHP中的HTTP身份验证中检索用户登录名和密码,但是我得到了PHP_AUTH_用户和PHP_AUTH_PW的空值。我做了一个测试: $phpAuthUserFV = filter_input(INPUT_SERVER, 'PHP_AUTH_USER'); // gives null $phpAuthUser = $_SERVER['PHP_AUTH_USER']; // gives the user login entered $remoteAddr = fi

我试图使用filter_输入从PHP中的HTTP身份验证中检索用户登录名和密码,但是我得到了PHP_AUTH_用户和PHP_AUTH_PW的空值。我做了一个测试:

$phpAuthUserFV = filter_input(INPUT_SERVER, 'PHP_AUTH_USER');
// gives null

$phpAuthUser = $_SERVER['PHP_AUTH_USER'];
// gives the user login entered

$remoteAddr = filter_input(INPUT_SERVER, 'REMOTE_ADDR');
// gives the remote address

$phpSelf = filter_input(INPUT_SERVER, 'PHP_SELF');
// gives the PHP_SELF value
使用PHP5.5.5和5.3.3进行测试


我错过什么了吗?我只是想知道,为什么这两个$\u服务器密钥的filter\u输入失败,但可以与其他密钥一起使用。

虽然这并不能直接回答您的问题-因为似乎存在一些错误-一个不错的解决方法是:

$phpAuthUser = filter_var($_SERVER['PHP_AUTH_USER']);

PHP_AUTH_USER是USER AUTH属性,因此如果没有$\u SERVER var,它将永远无法检索。

查看此注释:@Ramesh,我使用PHP作为模块,但无论如何都尝试了注释中的代码。似乎REQUEST_TIME_FLOAT和REQUEST_TIME也是不可访问的——它们是PHP_self之后的最后一个键,已经有一个相关的bug
filter_input(input_SERVER,'PHP_AUTH_USER')
实际上应该从$\u服务器变量获取值,并使用默认过滤器对其进行额外过滤。这是问题所在。但是对于PHPJAuthServer,它不会调用$$Server,因为它把它看作是真实的参数,并且在FieldI~输入中跳过它,这似乎是代码< > FieldItInPoT()/<代码>中的一个缺陷。让我感到奇怪的是,有些东西可以通过超级全局服务器访问,而不是通过通常更安全的
filter\u input()
。我也找不到这种行为的有效原因。好吧,这是可行的,但需要检查变量是否存在,或者使用@来避免注意。请不要使用@。只需执行:
$phpAuthUser=(isset($\u服务器['PHP\u AUTH\u用户])?过滤器变量($\u服务器['PHP\u AUTH\u用户]):null)