Jouban
Messages postés14Date d'inscriptionmardi 20 juillet 2004StatutMembreDernière intervention10 août 2004
-
20 juil. 2004 à 17:23
cs_pyranhaz
Messages postés236Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention13 décembre 2004
-
1 nov. 2004 à 03:53
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";
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
Messages postés14Date d'inscriptionmardi 20 juillet 2004StatutMembreDernière intervention10 août 2004 22 juil. 2004 à 10:57
Bonjour!
Merci à arnal69130 et WhiteDwarf pour vos réponses.
La première chose, c'est que je ne passais pas bien mes paramètres.
Et puis la deuxième, c'est qu'au lieu d'appeler $PHP_AUTH_USER et $PHP_AUTH_PW, il fallait que j'appelle $_SERVER['PHP_AUTH_USER'] et $_SERVER['PHP_AUTH_PW'].
Et là, ça marche !!!
Merci et bonne journée.
Jouban
Messages postés14Date d'inscriptionmardi 20 juillet 2004StatutMembreDernière intervention10 août 2004 21 juil. 2004 à 10:05
Salut Arnaud!
Merci pour ta réponse.
Le problème, si je passe par $user et $pwd, en les précisant en haut du script, c'est que je n'ai plus du tout la fenêtre d'authentification. La page que je veux protéger s'affiche directement puisque $user et $pwd sont déjà renseignés.
Sinon, comment ça fonctionne .htaccess?
Bonne journée.
WhiteDwarf
Messages postés510Date d'inscriptionsamedi 29 décembre 2001StatutMembreDernière intervention23 mai 2008 21 juil. 2004 à 12:04
Je ne crois pas qu'il faille enregistrer les variables dès le début, dans ton code tu met
$user = "toto";
$pwd = "bidon";
enlève ces deux lignes et au lieu de mettre
}
else { if($PHP_AUTH_USER$user && $PHP_AUTH_PW $pwd ) {
// la suite du script sera exécutée
echo "Bienvenue sur ce site";
}
tu met :
}
else { if($PHP_AUTH_USER toto && $PHP_AUTH_PWbidon) {
// la suite du script sera exécutée
echo "Bienvenue sur ce site";
}
et ensuite tu pourra utiliser le code d'arnal69130 et vu que les variable ne seront pas déclarées au début tu pourras les utiliser par la suite, sans qu'elles contiennent les login et mot de pass
----------------------
[http://www.laxis.net [Laxis]]WhiteDwarf
----------------------
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_pyranhaz
Messages postés236Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention13 décembre 2004 1 nov. 2004 à 03:53
intéressant, mais peut-on laisser .htaccess et demander un htpasswd.php pour pouvoir gérer ce dernier avec une base mysql ???
si on enlève le .htaccess pour metre par exemple htaccess.php le contenu du répertoire n'est plus protégé (zip, images, etc.) mais juste les pages... et encore ils doivent avoir tous le code...
donc, peut-on laisser .htaccess mais avoir un htpasswd.php gérer avec MySQL et fonctionnel ???
tout ce que j'ai fais jusqu'ici ne fonctionne pas... comme si .htaccess ne pouvait lire le résultat de php...
même si avec un echo ca revient en clair la même chose que:
user:mchfe74362635