Table des matières
Nous n'aborderons ici que l'identification gérée par le navigateur.
La fonction header permet de spécifier
une en-tête HTTP lors de l'envoi des fichiers HTML. Reportez-vous à
HTTP
1.1 Specification pour plus d'informations
sur les en-têtes HTTP.
La fonction header doit être appelée avant la
première balise HTML, et avant n'importe quel envoi de
commande PHP.
Nous allons utiliser ici cette fonction pour demander la vérification d'une identité.
Pour cela il suffit de faire commencer votre programme PHP par la commande :
header("WWW-Authenticate: Basic realm='private'");qui a pour effet de faire demander (et retenir) un nom et un mot de passe par le navigateur.
Vous pouvez ainsi tester le programme élémentaire suivant
(ident-exple01.php) :
<?php
if (!isset($PHP_AUTH_USER) || !isset($PHP_AUTH_PW)) {
header("WWW-Authenticate: Basic realm='private'");
} else {
echo "<html><body>";
echo "les données connues sont $PHP_AUTH_USER et $PHP_AUTH_PW\n";
echo "</body></html>";
}
?>Vous pouvez remarquer que la demande n'est faite que lors de la première exécution de la page. La seule façon, avec le programme tel qu'il est écrit, de devoir répondre à nouveau à la question est de sortir de votre navigateur (fermer toutes les fenêtres du navigateur, oui !) et de le relancer.
Si votre serveur est configuré en safe
mode vous n'aurez pas accès aux variables
$PHP_AUTH_USER et
$PHP_AUTH_PW mais à
$_SERVER["PHP_AUTH_USER"] et à
$_SERVER["PHP_AUTH_PW"]
Si votre serveur est configuré en safe mode, voir aussi la section intitulée « Traitement des données d'un formulaire en PHP ».
C'est cette propriété que nous allons utiliser pour gérer l'identification des utilisateurs.