Problème d'authentification php

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème d'authentification php

Re: Problème d'authentification php

par xTG » 09 févr. 2015, 16:21

Question vocabulaire on ne parle pas de cryptage dans ce cas mais de hashage. :)

Le cryptage est réversible avec la clé, le hash ne l'est pas.
D'autant plus qu'un même hash peut être obtenu à partir de chaînes différentes (même si suivant l'algorithme utilisé la chance est plutôt faible).

Re: Problème d'authentification php

par tof73 » 09 févr. 2015, 14:51

// le mot de passe est crypté dans la base avec la fonction de hachage md5

comme il ne semble pas que tu haches le mot de passe rentré avant de la comparer à celui en bdd, cela ne fonctionne que si tu rentres le md5 du mot de passe dans le champ mot de passe et non le mot de passe.

Re: Problème d'authentification php

par LerikalBless » 09 févr. 2015, 14:25

function obtenirDetailVisiteur($idCnx, $unId) {
    $num = filtrerChainePourBD($unId);
    $requete = "select login, pwd, num from utilisateurs where num='" . $unId . "'";
    $idJeuRes = mysql_query($requete, $idCnx);  
    $ligne = false;     
    if ( $idJeuRes ) {
        $ligne = mysql_fetch_assoc($idJeuRes);
        mysql_free_result($idJeuRes);
    }
    return $ligne ;
}

function verifierInfosConnexion($idCnx, $unLogin, $unMdp) {
    $unLogin = filtrerChainePourBD($unLogin);
    $unMdp = filtrerChainePourBD($unMdp);
    // le mot de passe est crypté dans la base avec la fonction de hachage md5
    $req = "select login, pwd from utilisateurs where login='".$unLogin."' and pwd='" . $unMdp . "'";
    $idJeuRes = mysql_query($req, $idCnx) or
    die('Impossible de se connecter au serveur MySQL');
    $ligne = false;
    if ( $idJeuRes ) {
        $ligne = mysql_fetch_assoc($idJeuRes);
        mysql_free_result($idJeuRes);
    }
    return $ligne;
}

function affecterInfosConnecte($num, $login) {
    $_SESSION["idUser"] = $num;
    $_SESSION["loginUser"] = $login;
}

Re: Problème d'authentification php

par LerikalBless » 09 févr. 2015, 14:23

------- Code pour se connecter ------------
$repInclude = 'include/';
  require($repInclude . "_init.inc.php");
  
  // est-on au 1er appel du programme ou non ?
  $etape=(count($_POST)!=0)?'validerConnexion' : 'demanderConnexion';
  
  if ($etape=='validerConnexion') { // un client demande à s'authentifier
      // acquisition des données envoyées, ici login et mot de passe
      $login = lireDonneePost("formLogin");
      $pwd = lireDonneePost("formPwd");   
      $lgUser = verifierInfosConnexion($idConnexion, $login, $pwd) ;
      // si l'id utilisateur a été trouvé, donc informations fournies sous forme de tableau
      if ( is_array($lgUser) ) { 
          affecterInfosConnecte($lgUser["num"], $lgUser["login"]);
      }
      else {
          ajouterErreur($tabErreurs, "Pseudo et/ou mot de passe incorrects");
      }
  }
  if ( $etape == "validerConnexion" && nbErreurs($tabErreurs) == 0 ) {
        header("Location:index.php");
  }
  require($repInclude . "_sommaire.inc.php");

Re: Problème d'authentification php

par @rthur » 08 févr. 2015, 23:05

Bonjour LerikalBless,

Bienvenue sur PHPfrance !
Afin de pouvoir t'aider efficacement, il faut que tu mettes sur le forum les parties de codes potentiellement utiles pour t'aider.
Il est contreproductif de mettre un lien vers un zip qui contient l'intégralité d'un script (de TP de BTS SIO ;-) ) pour que les bonnes volontés l'installe sur leur machine et le debug à ta place.

D'un point de vue de la sécurité, il est dangereux pour ceux qui souhaiteraient t'aider de tester sur leur machine un script inconnu sans l'avoir relu intégralement car il pourrait contenir du code PHP malveillant.

Problème d'authentification php

par LerikalBless » 08 févr. 2015, 21:53

Bonjour, j'ai des petits code PHP qui me permet de me connecter avec un login et un mdp pour accéder a mon site mais le problème c'est que même si je rentre un bon ou mauvais mdp il me dit << mot de passe incorect >> Pouvez vous m'aidez s'il vous plaît ?. Je vous met en lien mon dossier contenant mes fichier php et ma base de donnée. J'ai besoin de votre aide svp merci beaucoup
https://www.dropbox.com/s/cv79441jkciu8 ... n.zip?dl=0