J'essaye d'employer Basic HTTP Authentication et ai suivi l'exemple sur la page de manuel de PHP. Mais ça ne marche pas pour moi. La variable $_SERVER['PHP_AUTH_USER']
ne semble pas être définie. Lorsqu'un utilisateur essaie de se connecter, l'utilisateur est invité avec une nouvelle boîte de dialogue de connexion. Le serveur fonctionne sous PHP 5.3.3 et j'ai essayé avec Google Chrome et Internet Explorer.Comment puis-je utiliser l'authentification HTTP de base en PHP?
Voici l'exemple simple que je:
<?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>";
}
?>
Qu'est-ce qui ne va pas? Comment puis-je utiliser l'authentification HTTP de base en PHP?
Plutôt que d'essayer de le faire avec PHP, pourquoi n'utilisez-vous pas le serveur web, par exemple http://httpd.apache.org/docs/2.2/howto/auth.html – Phil
@James: Je pense que mon web l'hôte utilise Apache. – Jonas
@Phil: Alors mon code PHP sera-t-il dépendant de mon serveur web, et je ne peux pas changer easyli vers un autre serveur web. Je voudrais suivre la norme HTTP. – Jonas