Se supone que el problema debe estar en que no se reconoce la variable HTTP_REFERER del array $_SERVER.
Para ver si la autentificación se hace correctamente, prueba dando alguna salida al navegador:
En login.php:
Código PHP:
if (login($username, $password))
{
$_SESSION['auth_user'] = $username;
//Aquí cambiamos la linea para saber si la redirección es correcta.
die('Location: '.$_SERVER['HTTP_REFERER']);
}
else
{
echo 'The password you entered is incorrect';
exit;
}
Prueba y dinos si se imprime la dirección correctamente.
Si no, puedes buscar en este mismo foro (PHP) por "http_referer" y encontrarás varios posts respecto a la confiabilidad en la obtención de esa variable.
saludos