Bonjour à tous!
Je souhaite faire une procédure d'authentification pour certaines pages de mon site.
J'ai un fichier dans lequel je réalise cette authentification, et je l'appelle au début de chaque page que je veux restreindre à certaines personnes.
J'y ai mis pour l'instant les mots de passe en dur, c'est pour voir le fonctionnement. J'utiliserai après soit un fichier, soit une BD.
Voici le code:
*******
<?php
$user = "toto";
$pwd = "bidon";
function auth(){
$realm="Fenêtre d'authentification";
Header("WWW-Authenticate: Basic realm='".$realm."'");
Header("HTTP/1.0 401 Unauthorized");
echo "Vous ne pouvez accéder à cette page";
exit;
}
if(!isset($PHP_AUTH_USER) && !isset($PHP_AUTH_PW)) {
auth();
}
else {
if($PHP_AUTH_USER==$user && $PHP_AUTH_PW==$pwd) {
// la suite du script sera exécutée
echo "Bienvenue sur ce site";
}
else{
// rappel de la fonction d'identification
auth();
}
}
?>
*******
Le problème que je rencontre, c'est qu'il ne reconnaît pas les variables $PHP_AUTH_USER et $PHP_AUTH_PW. En effet, lors de l'exécution, le navigateur m'affiche à chaque fois l'erreur 401, et ne rentre jamais dans la bonne boucle, comme si ces variables n'existaient pas.
Pourtant, d'après ce que j'ai pu lire et comprendre, c'est qu'elles sont automatiquement déclarées et affectées dès que l'on remplit les champs 'login' et 'mot de passe' dans la fenêtre d'authentification.
Aurais-je mal compris ou faut-il quand même les déclarer ? et dans ce cas, quelle est la manière de procéder ?
Comment faire pour qu'elles soient prises en compte?
Merci de votre aide.
Bonne fin de journée.
Jouban