Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Authentification en PHP. [ Archives / Trucs et astuces ] (Jouban)

mardi 20 juillet 2004 à 17:23:20 | Authentification en PHP.

Jouban

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

mardi 20 juillet 2004 à 17:34:29 | Re : Authentification en PHP.

arnal69130

Il me semble que ces variables sont renseignées lorsque tu utilises une identification par .htaccess, elle viennent de la fenêtre

Si ta variable est $user, utilise $user :

if(empty($user) || empty($pwd) )


En espérant t'avoir apporté un élément de réponse,
Arnaud

mercredi 21 juillet 2004 à 10:05:07 | Re : Authentification en PHP.

Jouban

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.

Jouban

mercredi 21 juillet 2004 à 12:04:31 | Re : Authentification en PHP.

WhiteDwarf

Membre Club
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_PW==bidon) {
// 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
----------------------
[Laxis]WhiteDwarf
----------------------

mercredi 21 juillet 2004 à 12:10:01 | Re : Authentification en PHP.

WhiteDwarf

Membre Club
pardon je me suis trompé, il faut que tu rajoute des guillemets:


}
else {
if($PHP_AUTH_USER=="toto" && $PHP_AUTH_PW=="bidon") {
// la suite du script sera exécutée
echo "Bienvenue sur ce site";
}

----------------------
[Laxis]WhiteDwarf
----------------------

jeudi 22 juillet 2004 à 10:57:34 | Re : Authentification en PHP.

Jouban

Réponse acceptée !
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

lundi 1 novembre 2004 à 03:53:08 | Re : Authentification en PHP.

pyranhaz

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

alors je vois pas pourquoi ca marche pas :-(


Merci !



Cette discussion est classé dans : fichier, variables, php, passe, authentification


Répondre à ce message

Sujets en rapport avec ce message

variables [ par professeursidi ] Salut a tous,g un fichier identification.php qui va recuperer ds une base de donnees les variables $nom$prenom$passwordje veux declarer ces variables Longueur des variables php [ par pywy18 ] Bonjour,Je réalise un traitement php sur un fichier texte.Je lis celui ci ligne par ligne et enregistre tout dans une variable.Jusque maintenant cela Espace Membres. [ par BenXbox ] Voila J'Ai Créer Un Espace Membres, Et J'Ai Pas D'Erreurs Php, Mais Par Contre Mon Problème C'Est Que Quant Je Tape Le Pseudo Et Le Mot De Passe Il Me blem tout simple en php [ par pierrolefou ] ben voila j'ai créé un formulaire tout con en html sur une page toute conne en html et je demande d'envoyer mes variables en methode post vers un fich Ouverture fichier php [ par flopad ] Bonjour,est ce quil y a un moyen d'entrer l'authentification directement lorsque l'on ouvre un fichier ou dossier de la manière suivante :  file:\\XXX Transmettre des variables javascript vers php [ par dragon_noir1 ] bonjour. J'aimerai passer les variables javascript a un fichier.php!J'ai ça comme code :var reg = new RegExp("&","gi" PHP 5 et XML externe [ par elDiablo81 ] Salut à tous, J'ai fait une recherche dans le foru, avant de poster, mais j'avoue que 'ai pas compris grand chose... Dom et compagnie, j'y connais r Variables et fichier texte [ par vita83 ] Bonjour a tous,J'aimerai savoir si Php agit comme Msdos sur la gestion des variables dans un fichier.txtEn gros pour mon exemple 2 fichiers : index.ph Problème de fichiers de destination avec flash [ par kouzamax ] Bonjour à tous,http://www.wulab.com/articles/upload-barre-progression.htmlJ'utilise ceci pour donner la possibilité à des utilisateurs de uploader leu Encodage PHP [ par Kickaha59 ] Bonjour à tous,Je souhaite spécifier que mon fichier php est encodé en tel norme, n'importe laquelle.Le principe c'est que si je vais de le linux  sur


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version


LG KP501

Entre 9€ et 159€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 1,778 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.