IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Vérification d'un champ avec la fonction PASSWORD [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 5
    Par défaut Vérification d'un champ avec la fonction PASSWORD
    Bonjour,

    Voilà j'ai besoin d'un coup de pouce. J'aimerais vérifier un champ qui a la fonction password. C'est à dire que la valeur de ma variable est automatiquement cryptée avec la fonction password dans ma table mysql. Le problème est que lorsque je veux vérifier le champs, si je tape la valeur du champ crypté ça passe, et en clair ça passe pas. Comment faire ?

    Voici mon code :

    insertion des champs dans la table mysql, seule la variable "mdp" m'intéresse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "INSERT INTO comptes(pseudo, mdp, mode, perso) VALUES('$pseudo',PASSWORD('$mdp'),'$mode','$perso')";
    vérification des champs dans la table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete = "SELECT * FROM `comptes` WHERE `pseudo` = '$pseudo' AND `mdp` = '$mdp'";
    Je ne sais pas comment faire pour vérifier la variable "mdp" avec la fonction password.

    Merci pour votre aide.

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Par défaut
    Bonjour,

    Il suffit de crypter le 2è mot de passe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      $requete = "SELECT * 
                  FROM `comptes` 
                  WHERE `pseudo` = '$pseudo' 
                  AND `mdp` = PASSWORD('$mdp')";

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 5
    Par défaut
    Ca marche toujours pas... pourtant en mettant le mdp en clair ça marche sans problème. Là j'avoue ne rien comprendre...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 132
    Par défaut
    Citation Envoyé par Espion21 Voir le message
    Ca marche toujours pas... pourtant en mettant le mdp en clair ça marche sans problème. Là j'avoue ne rien comprendre...
    As tu vérifié directement dans ta BDD que le mot de passe a bien été crypté lors de l'insertion ?

    Essaie peut être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "INSERT INTO comptes(pseudo, mdp, mode, perso) VALUES('".$pseudo."',PASSWORD('".$mdp."'),'".$mode."','".$perso."')";

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 5
    Par défaut
    ok, voici mon code complet

    enregistrement du membre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
     
    //Récupération des variables
    if(isset($_GET['pseudo']))      $pseudo=$_GET['pseudo'];
    else      $pseudo="";
     
    if(isset($_GET['mdp']))      $mdp=$_GET['mdp'];
    else      $mdp="";
     
    if(isset($_GET['mode']))      $mode=$_GET['mode'];
    else      $mode="";
     
    if(isset($_GET['perso']))      $perso=$_GET['perso'];
    else      $perso="";
     
    //Vérification des champs vides
    if(empty($pseudo) OR empty($mdp) OR empty($mode) OR empty($perso))
        {
        echo '<font color="red">Attention, aucun champ ne peut rester vide !</font>';
    	exit();
        }
     
     
    //Remplacement caractères
    $pseudo = str_replace ("'","''", $pseudo);
    $mdp = str_replace ("'", "''", $mdp);
     
    //Vérification choix mode et perso
    if ($mode < 1) {
    	echo("Le mode de jeu que vous avez saisi est invalide ! <form method =\"post\" action =\"compte.php\"> <input type =\"submit\" value =\"Retour\" size =\"20\" </form> <BR>");
    }
     
    if ($mode > 3) {
    	echo("Le mode de jeu que vous avez saisi est invalide ! <form method =\"post\" action =\"compte.php\"> <input type =\"submit\" value =\"Retour\" size =\"20\" </form> <BR>");
    }
     
    if ($perso < 1) {
    	echo("Le personnage que vous avez saisi est invalide ! <form method =\"post\" action =\"compte.php\"> <input type =\"submit\" value =\"Retour\" size =\"20\" </form> <BR>");
    	exit();
    }
     
    if ($perso > 4) {
    	echo("Le personnage que vous avez saisi est invalide ! <form method =\"post\" action =\"compte.php\"> <input type =\"submit\" value =\"Retour\" size =\"20\" </form> <BR>");
    	exit();
    }
     
    //Enregistrement dans la table
    else
     
    //Connexion à la base
    require ("XXXXX");
     
    //Sélection de la base
    mysql_select_db('XXXX',$idconnect)  or die('Erreur de selection '.mysql_error());
     
    $sql = "INSERT INTO comptes(pseudo, mdp, mode, perso) VALUES('$pseudo',MD5('$mdp'),'$mode','$perso')";
     
    //Insertion des données dans la table
    mysql_query($sql) or die('Pseudo existant ! <BR> <a href ="compte.php"> Retour </a>');
     
     
    connexion du membre une fois inscrit :
     
    // Expiration des cookies et définitions
    $delai = 1*24*3600;
    setcookie("pseudo",$pseudo,time() + $delai);
    setcookie("mdp",$mdp,time() + $delai);
     
     
    // Récupération des variables
    if (isset($_POST['pseudo']))	$pseudo = $_POST['pseudo'];
    	else $pseudo = "";
     
    if (isset($_POST['mdp']))	$mdp = $_POST['mdp'];
    	else $mdp = "";
     
    //Vérification des champs vides
    if (empty($pseudo) OR empty($mdp)) {
    	echo '<font color ="#ff0000"> Identifiants incorrects ! <BR> <a href ="ident.php"> Retour </a> </font>';
    }
     
    else
     
    // Connexion à la base
    require ("XXXX");
     
    // Requête
    $requete = "SELECT * FROM `comptes` WHERE `pseudo` = '$pseudo' AND mdp = '".md5($mdp)."'";
     
    // Envoi de la requête
    $envoi = mysql_query($requete) or die('Erreur de connexion '.mysql_error());
     
    // Boucle de vérification du login
    while ($data = mysql_fetch_assoc($envoi)) {
    	echo "<H2 align =\"center\"> Mon compte </H2>";
    	echo "<BR><BR>";
    	echo "<center>";
    	echo "<table border =\"0\" width =\"100%\">";
    	echo "<TR> <TD =\"33%\" align =\"left\"> liens gauche </TD> <TD width=\"33%\" align =\"center\"> <form method =\"post\" action =\"jeu.php\"> <input type =\"submit\" value =\"Jouer\" size = \"20\"> </form> </TD> <TD width =\"33%\" align =\"right\"> liens droit </TD> </TR>";
    	echo "</table>";
    	echo "</center>";
     
     
    	echo "</form>";
    }
    Voilà, j'en ai sûrement trop mis mais au moins il y a tout lol.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    On n'injecte jamais dans une requete des données saisies par un utilisateur.
    Il faut utiliser des fonctions comme mysql_real_espace_string() sur les chaines recues.

    Sinon pourquoi tu utilises la fonction md5 mysql pour l'insertion et la fonction md5 php pour la lecture ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [HTML 5] Vérification d'un champ avec 8 chiffres Incompatible avec un HTA et IE7
    Par hackoofr dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 18/04/2013, 15h33
  2. [MySQL] Ordre des champs avec la fonction mysql_fetch_array
    Par laurentSc dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 14/12/2009, 23h19
  3. Réponses: 3
    Dernier message: 11/03/2008, 15h10
  4. Initialiser un champ texte avec une fonction javascript
    Par Agoye dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/06/2006, 11h26
  5. Modifier un champs texte avec une fonction PHP (calcul TVA)
    Par Stella2809 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/11/2005, 00h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo