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 :

PHP: code de connection [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2009
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2009
    Messages : 137
    Par défaut PHP: code de connection
    Bonjour

    J'ai actuellement un soucis avec un code php que j'ai repris et que j'ai modifier à ma sauce.
    Mon problème est le suivant:
    Sur une page l'utilisateur crée un compte avec un login et un mdp (vérifié 2 fois) ce mdp est ensuite codé en MD5 et insérer a ma base de donnée.

    Sur ma page de login lorsque j'essaye de me connecter avec le meme utilisateur et le bon mot de pass cà me met comme message mot de pass incorect.

    Voici mes 2 parti de codes ou je lis mon mot de pass

    1) Code d'inscription

    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
     
    // vérification des 2 pass
    if ($_POST['pass'] != $_POST['pass2']) {
    die('Vos mots de pass ne correspondent pas ');
    }
     
    // encriptage des MDP
    $_POST['pass'] = md5($_POST['pass']);
    if (!get_magic_quotes_gpc()) {
    $_POST['pass'] = addslashes($_POST['pass']);
    $_POST['username'] = addslashes($_POST['username']);
    }
     
    // insertion DB
    $insert = "INSERT INTO users (username, password)
    VALUES ('".$_POST['username']."', '".$_POST['pass']."')";
    $add_member = mysql_query($insert);
    Voici mon code de page de connection ou je vérifie le mot de pass:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    while($info = mysql_fetch_array( $check ))
    {
    $_POST['pass'] = stripslashes($_POST['pass']);
    $info['password'] = stripslashes($info['password']);
    $_POST['pass'] = md5($_POST['pass']);
     
    //Mot de passe incorecte
    if ($_POST['pass'] != $info['password']) {
    die('Mot de pass incorect. Veuillez ressayer.');
    }
    Merci de me venir en aide car la je seche totalement....

    S'il y a besoin de tout le code faites moi signe.

  2. #2
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Bonjour,

    Après du md5, tu t'amuses pas à ajouter des '\', donc tu peux enlever les addSlashes et stripSlashes pour le mot de pass

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2009
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2009
    Messages : 137
    Par défaut
    Heu si j'ai bien compris ce que tu me dit c'est de supprimer les lignes:

    lors de la création du compte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $_POST['pass'] = addslashes($_POST['pass']);
    $_POST['username'] = addslashes($_POST['username']);
    et lors de connection
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $_POST['pass'] = stripslashes($_POST['pass']);
    $info['password'] = stripslashes($info['password']);
    C'est bien ça? car j'ai déjà tester justement plusieurs fois et ca ne fonctionne pas . SI c'est pas celà peut tu me mettre le code à mettre à la place de mes lignes?
    Je veut juste avoir un mdp cripté en MD5 pour une question de sécurité. J'ai repris ce code donc voilà. S'il y a plus simple je suis prenneur

    Merci d'avance et merci pour la rapidité de ta réponse


    ps: lorsque que je ne cripte pas en md5 ça fonctionne sans aucun problème... problème avec mon code de criptage md5?

  4. #4
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    J'aurais essayé un codegae dans le genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    // vérification des 2 pass
    ... 
    // encriptage des MDP
    $_POST['pass'] = md5($_POST['pass']);
    if (!get_magic_quotes_gpc())
        $_POST['username'] = addslashes($_POST['username']); 
    // insertion DB
    ...
    ET

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    // Je sors le md5, sinon dans le while tu va faire du md5 de mde5 de ...
    $_POST['pass'] = md5($_POST['pass']);
    while($info = mysql_fetch_array( $check ))
    {
        $info['password'] = stripslashes($info['password']);
     
        //Mot de passe incorecte
        if ($_POST['pass'] != $info['password'])
            die('Mot de pass incorect. Veuillez ressayer.');
    }
    Maintenant avec les '\' why not mais le md5 ya pas de caractères spéciaux.

  5. #5
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Dans tous les cas faut sortir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $_POST['pass'] = stripslashes($_POST['pass']);
    $_POST['pass'] = md5($_POST['pass']);
    de la boucle While

  6. #6
    Membre confirmé
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2009
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2009
    Messages : 137
    Par défaut
    J'ai bien essayer tout cela mais rien ne fait ...

    Je vais mettre mes 2 script en entier peut etre que j'ai un soucis autre part:

    Register.php
    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
     
    <?php
    // Connects to your Database
    mysql_connect("localhost", "root", "") or die(mysql_error());
    mysql_select_db("mabase") or die(mysql_error());
     
    // Form de saisie
    if (isset($_POST['submit'])) {
     
    // Vérifie les champs
    if (!$_POST['username'] | !$_POST['pass'] | !$_POST['pass2'] ) {
    die('Veuillez remplir tous les champs');
    }
     
    // Vérification si pseudo existe
    if (!get_magic_quotes_gpc()) {
    $_POST['username'] = addslashes($_POST['username']);
    }
    $usercheck = $_POST['username'];
    $check = mysql_query("SELECT username FROM users WHERE username = '$usercheck'")
    or die(mysql_error());
    $check2 = mysql_num_rows($check);
     
    //Pseudo existant
    if ($check2 != 0) {
    die('Désolé, le nom '.$_POST['username'].' est déjà utilisé.');
    }
     
    // vérification des 2 pass
    if ($_POST['pass'] != $_POST['pass2']) {
    die('Vos mots de pass ne correspondent pas ');
    }
     
    // encriptage des MDP
    $_POST['pass'] = md5($_POST['pass']);
    // if (!get_magic_quotes_gpc())
        // $_POST['username'] = addslashes($_POST['username']); 
    // if (!get_magic_quotes_gpc()) {
    // $_POST['pass'] = addslashes($_POST['pass']);
    // $_POST['username'] = addslashes($_POST['username']);
    // }
     
    // insertion DB
    $insert = "INSERT INTO users (username, password)
    VALUES ('".$_POST['username']."', '".$_POST['pass']."')";
    $add_member = mysql_query($insert);
    ?>
     
     
    <h1>Registered</h1>
    <p>Merci de vous être enregistrés. Pensez à vous connecter.</a></p>
    <?php
    }
    else
    {
    ?>
     
     
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    <table border="0">
    <tr><td>Username:</td><td>
    <input type="text" name="username" maxlength="60">
    </td></tr>
    <tr><td>Password:</td><td>
    <input type="password" name="pass" maxlength="10">
    </td></tr>
    <tr><td>Confirmer Password:</td><td>
    <input type="password" name="pass2" maxlength="10">
    </td></tr>
    <tr><th colspan=2><input type="submit" name="submit" value="S'enregistrer"></th></tr> </table>
    </form>
     
    <?php
    }
    ?>

    login.php

    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
     
    <?php
    // Connection DB
    mysql_connect("localhost", "root", "") or die(mysql_error());
    mysql_select_db("mabase") or die(mysql_error());
     
    // Vérifie si cookie
    if(isset($_COOKIE['username']))
     
    // Si cookies déja activé et log redirection direct.
    {
    $username = $_COOKIE['username'];
    $pass = $_COOKIE['password'];
    $check = mysql_query("SELECT * FROM users WHERE username = '$username'")or die(mysql_error());
    while($info = mysql_fetch_array( $check ))
    {
    if ($pass != $info['password'])
    {
    }
    else
    {
    header("Location: members.php");
     
    }
    }
    }
     
    //if the login form is submitted
    if (isset($_POST['submit'])) { // if form has been submitted
     
    // makes sure they filled it in
    if(!$_POST['username'] | !$_POST['pass']) {
    die('Champs incorecte.');
    }
     
        $check = mysql_query("SELECT * FROM users WHERE username = '".$_POST['username']."'")or die(mysql_error());
     
    //Login existe pas
        $check2 = mysql_num_rows($check);
    if ($check2 == 0) {
    die('Cet utilisateur n\'existe pas. <a href=register.php>Cliquer ici pour vous enregistrez.</a>');
    }
    $_POST['pass'] = stripslashes($_POST['pass']);
    $_POST['pass'] = md5($_POST['pass']);
     
    while($info = mysql_fetch_array( $check ))
    {
        //Mot de passe incorecte
        if ($_POST['pass'] != $info['password']){
            die('Mot de pass incorect. Veuillez ressayer.');
    }
    else
    {
     
    // Si mot de passe correct
    $_POST['username'] = stripslashes($_POST['username']);
    $hour = time() + 3600;
    setcookie(ID_my_site, $_POST['username'], $hour);
    setcookie(Key_my_site, $_POST['pass'], $hour);
     
    //Redirection parti membre
    header("Location: members.php");
    }
    }
    }
    else
    {
     
    // Non enregistré
    ?>
     
    <form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
    <table border="0">
    <tr><td colspan=2><h1>Login</h1></td></tr>
    <tr><td>Username:</td><td>
    <input type="text" name="username" maxlength="40">
    </td></tr>
    <tr><td>Password:</td><td>
    <input type="password" name="pass" maxlength="50">
    </td></tr>
    <tr><td colspan="2" align="right">
    <input type="submit" name="submit" value="Login">
    </td></tr>
    </table>
    </form>
    <?php
    }
     
    ?>
    Je les ai mis avec les modifs que tu ma proposé mais rien ne se fait tout de même merci à toi pour ton aide

  7. #7
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Dans register.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $_POST['pass'] = md5($_POST['pass']);
    if (!get_magic_quotes_gpc())
        $_POST['username'] = addslashes($_POST['username']); 
     
    // Pour vérifier
    echo $_POST['pass'];
    Dans login.php
    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
     
    // Pourquoi le stripslashes, ya plus de addslashes !!!
    // Je mets en commentaire
    // $_POST['pass'] = stripslashes($_POST['pass']);
    $_POST['pass'] = md5($_POST['pass']);
     
    echo $_POST['pass'] 
    while($info = mysql_fetch_array( $check ))
    {
        // Pour vérif, si cette echo ne correspond pas alors c dans la base que
        // le type est mal défini pour supporter du md5
        echo $info['password'];
     
        //Mot de passe incorecte
        if ($_POST['pass'] != $info['password']){
            die('Mot de pass incorect. Veuillez ressayer.');
    }
    Voilà vérifies un peu avec les echo et donnes moi les résultats

  8. #8
    Membre confirmé
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2009
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2009
    Messages : 137
    Par défaut
    Ok
    Merci c'est bon
    Grace au affichage des mdps que je n'arrivais pas à faire je ne sais pas pourquoi mais bon^^ j'ai pu voir que j'avais un soucis entre mes 2 mots de passe.

    Dans ma base mon champs password etais de 30 char max..... et mon md5 faisait 32 charactères donc pas le même.....

    Merci beaucoup à toi pour ton aide je t'en suis reconnaissant.

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

Discussions similaires

  1. [PHP] Comment se connecter à une base DB2 ?
    Par wapit dans le forum DB2
    Réponses: 9
    Dernier message: 26/02/2009, 17h26
  2. [PHP/Linux] Se connecter à un .mdb sans ODBC
    Par localhost dans le forum Access
    Réponses: 1
    Dernier message: 07/09/2006, 14h14
  3. visibilité du code de connection à la database
    Par bris dans le forum Débuter
    Réponses: 4
    Dernier message: 27/02/2006, 16h10
  4. [SGBD] PHP et MYSQL "Connection Impossible"
    Par saidus dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 02/10/2005, 14h26
  5. Code de connection à BD Oracle
    Par bobic dans le forum ASP
    Réponses: 12
    Dernier message: 29/07/2005, 15h35

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