Tom's Guide > Forum > Programmation > Prob avec Script authentification en php

Prob avec Script authentification en php

Forum Programmation : Prob avec Script authentification en php

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

salut a tous, j'ai utilisé un script d'authentification pour que les utilisateurs s'enregistrent pour acceder a l'administration. Seuls les utilisateurs enregistrés peuvent acceder a cette partie

voila mon code

Code :
  1. <?php
  2. session_start();
  3. session_register("DBASE" );
  4. session_register("USER" );
  5. session_register("PASSWD" );
  6. $_SESSION["DBASE"]="parici";
  7. function validuser($login, $passwd)
  8. {
  9. //connexion à la base
  10. $id_connex=mysql_connect("localhost","root","" ) or die("La connexion a echoué !" );
  11. mysql_select_db($_SESSION["DBASE"], $id_connex);
  12. $query = "SELEC LOGIN,MOTDEPASSE FROM COMPTESUTILISATEUR where LOGIN =\"".$login."\"";
  13. $result= mysql_query($query,$id_connex);
  14. $ligne= mysql_fetch_array($result);
  15. if($ligne["MOTDEPASSE"]==$passwd)
  16. {
  17.     $_SESSION["LOGIN"]=$login;
  18.     $_SESSION["MOTDEPASSE"]=$passwd;
  19.     return true; //si authentification vérifiée, retourne vrai
  20. }
  21. else
  22. {
  23.     return false; //sinon retourne faux
  24. }
  25. }//fin fonction
  26. ///////////////////////////////////////////////////////////
  27. //AUTHENTIFICATION HTTP
  28. ///////////////////////////////////////////////////////////
  29. if ((!isset($_SERVER['PHP_AUTH_USER']))|| ($_POST['ReLog']==1))
  30. {
  31.     header('WWW-Authenticate: Basic realm="Admin"');
  32.     header('HTTP/1.0 401 Unauthorized');
  33.     echo 'Veuillez vous identifiez';
  34.     exit;
  35. }
  36. else
  37. {
  38.     include 'fonctionsprat.php';
  39.     if (validuser($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']))
  40.     {
  41.         echo"<h3>Authentification confirmée</h3>";
  42.         redirect("index.php" );
  43.     }
  44.     else
  45.     {
  46.         echo"<h3>Authentification échouée</h3>";
  47.         echo"<form action ='{$_SERVER['PHP_SELF']}' method='POST'>\n";
  48.         echo"<input type='hidden' name='ReLog' value='1'>\n";
  49.         echo"<input type= 'submit' value='Login'>\n";
  50.         echo"</form>\n";
  51.     }
  52. }
  53. ?>



Jai des ptits soucis. Quand je tape un bon login et un bon mot de passe, j'ai une erreur qui s'affiche "undefined index Relog, alors que celle variable est definie plus loin.J'accede quand meme a la bonne page.
Apres quand je tape un mauvais pass, la boite de dialogue se reaffiche et la, je tape le bon login et le bon pass, impossible d'acceder a la page d'admin.

Pouvez vous m'aidez a résoudre ces problemes merci.

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

svp, personne pour m'aider ??

Répondre à Ludo95000

sur ce partie :

Code :
  1. ///////////////////////////////////////////////////////////
  2. //AUTHENTIFICATION HTTP
  3. ///////////////////////////////////////////////////////////
  4. if ((!isset($_SERVER['PHP_AUTH_USER']))|| ($_POST['ReLog']==1))
  5. {
  6.     header('WWW-Authenticate: Basic realm="Admin"');
  7.     header('HTTP/1.0 401 Unauthorized');
  8.     echo 'Veuillez vous identifiez';
  9.     exit;
  10. }



quand tu fait un test sur ta variable relog (en post) tu ne verifi pas qu'elle existe ou non avant il fait rajouter un isset() dessus ;) et l'erreur devrais disparaitre

Répondre à burningdog

jai pas trop capté, j'ai essayé comme ça

Code :
  1. if ((!isset($_SERVER['PHP_AUTH_USER']))|| (!isset($_POST['ReLog'])|| ($_POST['ReLog']==1)))



ça marche pas; imposible de se connecter a la base.

Répondre à Ludo95000
Tom's Guide > Forum > Programmation > Prob avec Script authentification en php
Aller à :

Il y a 563 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens