Php/mysql

Résolu
thomason Messages postés 93 Statut Membre -  
PeterPeterPeter Messages postés 202 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je veux vérifier le login et le mot de passe dans ma base
que j'ai créée sur mysql
voici le code que j'ai commencé

<?php

$bdd = "projet";
$host= "localhost";
$user= "root";
$pass= "";

if (mysql_connect($host,$user,$pass)){
echo'connection réussie.<br>';
}
else {
echo '"Impossible de se connecter à la base de données"'.mysql_error(); }
if(mysql_select_db('projet')){
echo' bd choisie';
}
else{
echo'"erreur"'.mysql_error();

}
$log=$_POST["login"];
$pass=$_POST["password"];

$requete= " SELECT login , password FROM user WHERE (login='$log' AND password='$pass' )";
$resultat=mysql_query($requete) or die ('erreur'.$requete.'' .mysql_error());

?>
Configuration: Windows XP
Firefox 2.0.0.16

2 réponses

  1. nEm3sis Messages postés 722 Statut Membre 113
     
    je te conseillerais plutot de faire comme ça :

    $log=$_POST["login"];
    $pass=$_POST["password"];
    
    $requete= " SELECT password FROM user WHERE login='$log'";
    $resultat=mysql_query($requete) or die ('erreur '.$requete.' '.mysql_error()); 
    $tabReponse= mysql_fetch_row($resultat);
    if ($tabReponse['password'] == $pass) echo 'le mot de passe est bon';
    else echo 'erreur, mauvais mot de passe';
    
    0
    1. thomason Messages postés 93 Statut Membre
       
      merci ça marche avec

      if ($tabReponse[0] == $pass) echo 'le mot de passe est bon';
      else echo 'erreur, mauvais mot de passe';


      mais comment vais-je crypter le mot de passe?
      0
      1. nEm3sis Messages postés 722 Statut Membre 113 > thomason Messages postés 93 Statut Membre
         
        pour si tu le cryptes en MD5:
        if ($tabReponse[0] == md5($pass)) echo 'le mot de passe est bon';
        else echo 'erreur, mauvais mot de passe'; 


        edit : sachant que le $tabReponse[0] provient de la base de donnée et donc devra déjà etre crypté par md5
        tu aura donc un truc dans ce genre pour l'inscription
        $pass = md5($_POST[pass])
        mysql_query(insert $pass into etc ...)



        ps : bravo pour avoir corrigé mon erreur ^^
        habituelement j'utilisais mysql_fetch_array donc ça aurait été ['password'] mais la j'ai mis fetch row donc ça doit etre [0] comme tu as trouvé

        ps2 :
        bien sur il faut aussi garder comme l'as dit je sais plus qui juste en dessous
        $log = mysql_real_escape_string(htmlspecialchars($_POST['login']));­
        au lieu de
        $log = $_POST['login'];­
        pour le pass c'est bon puisqu'il sera crypté
        0
      2. PeterPeterPeter Messages postés 202 Date d'inscription   Statut Membre Dernière intervention   30 > thomason Messages postés 93 Statut Membre
         
        Et ne pas oublier de le crypter dans la base de donnée lord de l'insertion aussi !
        0
  2. PeterPeterPeter Messages postés 202 Date d'inscription   Statut Membre Dernière intervention   30
     
    Et ne pas oublier pour éviter les injections sql/xss :
    $log = mysql_real_escape_string(htmlspecialchars($_POST['login']));
    $pass = mysql_real_escape_string(htmlspecialchars($_POST['password']));
    


    Je te conseille aussi de crypter tes mots de passe lors de l'insertion dans ta BDD par exemple avec md5() puis tu compares le hachage md5 avec celui de ta BDD.
    Seul problème avec ce système, c'est que t'es obligé de regénérer un mot de passe si un utilisateur l'a perdu.
    0
    1. thomason Messages postés 93 Statut Membre
       
      comment faire cà?
      as-tu un code source disponible?
      ça m'intéresse!!!!!
      0