Estoy tratando de usar Basic HTTP Authentication y seguí el ejemplo en la página del manual de PHP. Pero no funciona para mí. La variable $_SERVER['PHP_AUTH_USER']
no parece estar configurada. Cuando un usuario intenta iniciar sesión, el usuario recibe un nuevo cuadro de diálogo de inicio de sesión. El servidor ejecuta PHP 5.3.3 y lo he intentado con Google Chrome e Internet Explorer.¿Cómo puedo usar la Autenticación HTTP básica en PHP?
Aquí está el ejemplo sencillo que he utilizado:
<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="Jonas Realm"');
header('HTTP/1.0 401 Unauthorized');
echo 'User pressed Cancel';
exit;
} else {
echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as you password.</p>";
}
?>
Cuál es el problema? ¿Cómo puedo usar la Autenticación HTTP básica en PHP?
En lugar de tratar de hacer esto con PHP, ¿por qué no utiliza el servidor web, por ejemplo, http://httpd.apache.org/docs/2.2/howto/auth.html – Phil
@James: Creo que mi web el host usa Apache – Jonas
@Phil: Entonces mi código PHP será dependiente de mi servidor web, y no puedo cambiar fácilmente a otro servidor web. Me gustaría seguir el estándar HTTP. – Jonas