Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1220 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Authentification HTTP avec MySQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Authentification HTTP avec MySQL

n°952595
Surfoo
Ça va ? ok.
Posté le 13-01-2005 à 19:12:07  profilanswer
 

Bonjour,
 
Voilà je suis en train de réaliser l'authentification HTTP avec des login/password dans la base données, mais ça ne fonctionne pas.
 

Code :
  1. //affichage de la fenetre
  2. if (!isset($_SERVER['PHP_AUTH_USER']) && !isset($_SERVER['PHP_AUTH_PW'])) {
  3. header("WWW-Authenticate: Basic realm=\"Administration\"" );
  4.     header("HTTP/1.0 401 Unauthorized" );
  5.     exit();
  6. }
  7. //acces a la partie prive
  8. else {
  9. $class->sql("SELECT abo_id
  10.     FROM pavut_abonnes
  11.     WHERE abo_login='".$_SERVER['PHP_AUTH_USER']."'
  12.     AND abo_type!='user'" );
  13. //Si l'utilisateur existe
  14. if ($class->num_rows()==1 && is_numeric($_SERVER['PHP_AUTH_PW'])) {
  15.   $class->sql("SELECT abo_id, abo_nom, abo_prenom, abo_passwd, abo_type
  16.       FROM pavut_abonnes
  17.       WHERE abo_login='".$_SERVER['PHP_AUTH_USER']."' AND abo_passwd=PASSWORD(".$_SERVER['PHP_AUTH_PW']." )" );
  18.   //Si l'utilisateur n'est pas trouvé : redirection 401
  19.   if ($class->num_rows()==0) {
  20.    header("HTTP/1.0 401 Unauthorized" );
  21.    exit();
  22.   }
  23. }
  24. //sinon redirection 401
  25. else {
  26.   header("HTTP/1.0 401 Unauthorized" );
  27.   exit();
  28. }
  29. }


 
En fait quand j'essaie de me logguer, j'ai une page blanche sans rien, on dirait que je vais sur l'erreur 401...
 
Déjà est ce que le code est bon ? des choses à changer surement ou ameliorer non ?

mood
Publicité
Posté le 13-01-2005 à 19:12:07  profilanswer
 

n°952692
Hansolo
Posté le 13-01-2005 à 21:55:00  profilanswer
 

Salut,
 
Dans ta condition "l'utilisateur existe", il n'y a aucun traitement à part la sélection des données, donc page blanche. Et la seconde condition n'existera jamais:
 

Code :
  1. if ($class->num_rows()==1 && ...)) {
  2.         ...
  3.         if ($class->num_rows()==0) {
  4.         ...
  5.         }
  6. }

n°953199
Surfoo
Ça va ? ok.
Posté le 14-01-2005 à 16:15:08  profilanswer
 

Bah le traitement se fait dans le if().
 
Enfin bref, j'ai trouvé et ça fonctionne :
 

Code :
  1. //affichage de la fenetre
  2. if (!isset($_SERVER['PHP_AUTH_USER']) && !isset($_SERVER['PHP_AUTH_PW'])) {
  3. header("WWW-Authenticate: Basic realm=\"Administration\"" );
  4.     header("HTTP/1.0 401 Unauthorized" );
  5.     exit();
  6. }
  7. //acces a la partie prive
  8. elseif(is_numeric($_SERVER['PHP_AUTH_PW'])) {
  9. $class->sql("SELECT abo_id, abo_nom, abo_prenom, abo_type
  10.     FROM pavut_abonnes
  11.     WHERE abo_login='".$_SERVER['PHP_AUTH_USER']."'
  12.     AND abo_passwd=PASSWORD(".$_SERVER['PHP_AUTH_PW']." )
  13.     AND abo_type!='user'" );
  14. //Si l'utilisateur n'est pas trouvé : redirection 401
  15. if ($class->num_rows()==0) {
  16.  echo "authentification raté";
  17.  //header("HTTP/1.0 401 Unauthorized" );
  18.  exit();
  19. }
  20. }
  21. else {
  22. echo "pas acces";
  23. //header("HTTP/1.0 401 Unauthorized" );
  24. exit();
  25. }


 
Si vous avez d'autre améliorations a proposer n'hésitez pas. :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Authentification HTTP avec MySQL

 

Sujets relatifs
Pb affectation de valeur mysql_queryRedirection et HTTP_POST_VARS
Connexion en shell à une base MySQL distante (OS X)petit probleme d'insertion dans une bdd Mysql
[php/Mysql] auto incrementé une dateetat de la replication MySQL
Problème avec MySQL alpha 5.0.2Base MySQL exploitée a partir d'un autre HDD ? Possible ?
Conseil ->Quel type de serveur pour une base MySQL?Recherche csv VS recherche mysql
Plus de sujets relatifs à : Authentification HTTP avec MySQL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR