I am trying to retrieve user login and password from HTTP authentication in PHP, using filter_input, but I get nulls for both PHP_AUTH_USER and PHP_AUTH_PW. I made a test:

$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

Tested with PHP 5.5.5 and 5.3.3.

Am I missing something? I am just wondering, why filter_input fails for these two $_SERVER keys, but works with other.

有帮助吗?

解决方案

Although this does not directly answer your question - since there seems to be something buggy going on - a decent workaround would be:

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

其他提示

PHP_AUTH_USER is user auth properties so it will never retrieve without $_SERVER var.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top