En lugar de utilizar $PHP_AUTH_USER es muy recomendable utilizar $_SERVER['PHP_AUTH_USER'] si tu versión de PHP es mayor a 4.2 (seguramente lo sea).
Con respecto a los usuarios autorizados, como dice en la
documentación de php.net, la variable $_SERVER['PHP_AUTH_USER'] te retornará el nombre de usuario que se ha colocado en la ventanita del navegador mientras que $_SERVER['PHP_AUTH_PW'] retornará el password. Lo único que tienes que hacer es verificar estos datos con tu base de datos:
Código PHP:
<?php
$usuario='pepe';
$password='1234';
if(!isset($_SERVER['PHP_AUTH_USER']))
{
header('WWW-Authenticate: Basic realm="..."');
header('HTTP/1.0 401 Unauthorized');
exit;
}
else
{
if($_SERVER['PHP_AUTH_USER']==$usuario && $_SERVER['PHP_AUTH_PW']==$password)
{
echo 'Usuario autenticado';
// Incluyes la página que deseas mostrar
}
else
{
echo 'Usuario o contraseña incorrectos';
exit;
}
}
?>
Con la diferencia que tu debes buscar la existencia del usuario ingresado en la tabla de usuarios de tu base de datos y verificar que la contraseña ingresada se corresponda con la almacenada.
Saludos.