PHP_AUTH_* doesn"t work on Apache?
am 06.11.2007 00:33:38 von yawnmoth
I was trying to test the following PHP script and am having some
difficulty:
if (empty($_SERVER['PHP_AUTH_USER']) ||
empty($_SERVER['PHP_AUTH_PW']))
{
header('WWW-Authenticate: Basic realm="Admin Control Panel"');
header('HTTP/1.0 401 Unauthorized');
exit;
}
echo 'PHP_AUTH_USER:
'.htmlspecialchars($_SERVER['PHP_AUTH_USER']).'
';
echo 'PHP_AUTH_PW: '.htmlspecialchars($_SERVER['PHP_AUTH_PW']);
?>
When I try it on Abyss web server what happens is that I enter "test"
as my username / password and then it echoes them back to me. On
Apache, it just keeps prompting me for the password. It's as though
PHP_AUTH_* is never being set. Any ideas as to why this is and what
I'd need to do to fix it?
Re: PHP_AUTH_* doesn"t work on Apache?
am 06.11.2007 03:24:57 von Justin Koivisto
yawnmoth wrote:
> I was trying to test the following PHP script and am having some
> difficulty:
>
>
> if (empty($_SERVER['PHP_AUTH_USER']) ||
> empty($_SERVER['PHP_AUTH_PW']))
> {
> header('WWW-Authenticate: Basic realm="Admin Control Panel"');
> header('HTTP/1.0 401 Unauthorized');
> exit;
> }
>
> echo 'PHP_AUTH_USER:
> '.htmlspecialchars($_SERVER['PHP_AUTH_USER']).'
';
> echo 'PHP_AUTH_PW: '.htmlspecialchars($_SERVER['PHP_AUTH_PW']);
> ?>
>
> When I try it on Abyss web server what happens is that I enter "test"
> as my username / password and then it echoes them back to me. On
> Apache, it just keeps prompting me for the password. It's as though
> PHP_AUTH_* is never being set. Any ideas as to why this is and what
> I'd need to do to fix it?
>
I know, I know... personal plug = bad taste.... However, I have done
some work with basic auth through apache/php and did a quick write up:
http://koivi.com/php-http-auth/
--
Posted via a free Usenet account from http://www.teranews.com
Re: PHP_AUTH_* doesn"t work on Apache?
am 06.11.2007 05:10:45 von nc
On Nov 5, 3:33 pm, yawnmoth wrote:
>
> I was trying to test the following PHP script and am having
> some difficulty:
>
> if (empty($_SERVER['PHP_AUTH_USER']) ||
> empty($_SERVER['PHP_AUTH_PW']))
....
> When I try it on Abyss web server what happens is that I enter
> "test" as my username / password and then it echoes them back
> to me. On Apache, it just keeps prompting me for the password.
> It's as though PHP_AUTH_* is never being set. Any ideas as to
> why this is and what I'd need to do to fix it?
Most likely, your PHP is configured as CGI/FastCGI. HTTP
authentication, on the other hand, is only supported if PHP is
configured as an Apache module. Documentation says it quite clearly:
The HTTP Authentication hooks in PHP are only available when
it is running as an Apache module and is hence not available
in the CGI version.
http://www.php.net/features.http-auth
Another possibility is that your Apache installation does not have an
authorization module.
Cheers,
NC