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 :

[SQL] Mots de passe dans une base de données


Sujet :

PHP & Base de données

  1. #1
    Débutant Avatar de jockyboss777
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 257
    Points : 68
    Points
    68
    Par défaut [SQL] Mots de passe dans une base de données
    Bonjour a tous,
    Je vous expose mon problème.
    J'ai une base de données contenant des mot de passe et des login.
    J'ai une page (PHP) qui est un formulaire de connexion est il doit aller chercher les MPD et login dans la BDD

    Mais alors que je fais avec ma base de donné un array je en peux que récupérer le DERNIER MPD et LOgin.

    Quelqu'un peut il m'aider ???
    En espérent avoir été clair...
    Jonathan
    OpenGL est une librairie graphique 3D très évoluée et totalement portable offrant de nombreuses ressources aux programmeurs cherchant à faire de la synthèse d'images (pour les jeux par exemples).



    Je sais que ce pseudo est prétentieux mais je ne savais quoi mettre d'autre (à part Bill Gates peut-être !? )

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Tu peux mettre le bout de code de la requete et de la facon dont tu vérifies la connexion ?

  3. #3
    Débutant Avatar de jockyboss777
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 257
    Points : 68
    Points
    68
    Par défaut
    Je vous donne tous mon code
    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
     
           <link rel="stylesheet" media="screen" type="text/css" title="Essai" href="fichier.css" />   
    <Body>
     
    <title>
    Mots de Passe et Login Obligatoire---Clg Grande Batide
    </title>
    <!--demande de connection MDP et Pseudo avec Formulaire  -->
     
    <?php
    //Connexion a la base de données "Cap_private_zone" pour que seul les élève y est accés
    mysql_connect("sql.free.fr", "login", "MDP");
    mysql_select_db("technobastide");
    //"Query" pour récupération des "Mots de Passe" et "Login" et les placer dans un "array"
    $base = mysql_query("SELECT login, pass FROM cap_private_zone" );
    while ($tout = mysql_fetch_array($base))
    {
    $login = $tout['login'];
    $pass = $tout['pass'];
    echo '$login = ' . $login . '<br />';
    echo '$pass = ' . $pass . '<br />';
    }
    //Placement des MDP et des Pseudo dans les Variable "pass" et "login"
     
    //------------------------------------------------------------
    //CONDITION (pour accés au formulaire) PAR ENTRÉ DE PSEUDO ET MDP
    //Mots de Passe
    If (isset($_POST['mot_de_passe'])) //Si $_POST['mot_de_passe']existe
    {
    $mdp = $_POST['mot_de_passe'];
     
    }
    Else
    {
    $mdp="";
    }
    //Pseudo
    If (isset($_POST['utilisateur']))
    {
    $pseudo = $_POST['utilisateur'];
    }
    Else
    {
    $pseudo = "";
    }
    //condition réunie
    If ($mdp == $pass AND $pseudo == $login)
    {
    ?>
    <p>
    Mots de passe et Login acceptés.<br />
    Cliquez sur le Boutton pour avoir accés a l'enregistrement de votre Stage<br />
    <form action="form.php" method="POST" >
    <input type="hidden" name="acc" value="12azd12egr3grd4fe8HGTe524dqccggtFGF41DGJ5ggsgh" />
    <input type="hidden" name="ps" value="<?php echo $pseudo ?>" />
    <input type="submit" value="page suivante" />
    </form>
    </p>
    <?php
    }
    Else
    {
    ?>
    <p>
    Vous n'etes pas autorisé a entrer dans les page suivante.<br />
    Connectez-vous.<br />
    <br />
    <form action="index.php" method="POST" >
    Login :<br />
     
    <input type="text" name="utilisateur" /><br />
    <br />
    Mots de passe :<br />
     
    <input type="password" name="mot_de_passe" /><br />
    <br />
    <input type="submit" value="Connexion" />
    </form>
    </p>
     
    <?php
    }
    mysql_close();
    ?>
     
    <br />
    <br />
    <br />
    <p align="center"> Page créée par Jonathan Baudin </p>
    <p align="center">  Accés professeur <span class="lien_prof"><a href="http://sql.free.fr" />ICI</a></span> pour aller sur sql.free.fr</p>
    <p align="center">  Accés professeur <span class="lien_prof"><a href="http://technobastide.free.fr/Listage_stage/acces.php" />ICI</a></span> pour voir la BDD</p>
    </Body>
    OpenGL est une librairie graphique 3D très évoluée et totalement portable offrant de nombreuses ressources aux programmeurs cherchant à faire de la synthèse d'images (pour les jeux par exemples).



    Je sais que ce pseudo est prétentieux mais je ne savais quoi mettre d'autre (à part Bill Gates peut-être !? )

  4. #4
    Membre averti Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Points : 332
    Points
    332
    Par défaut
    Heu...

    Ta requête a pas l'air correcte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT login, pass FROM cap_private_zone WHERE login = '$pseudo'
    Eventuellement serait mieux, mais là mettre pseudo, ça risque de pas te renvoyer grand chose
    Linio

  5. #5
    Débutant Avatar de jockyboss777
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 257
    Points : 68
    Points
    68
    Par défaut
    A heu faut pas en tenir compte c'était un test que j'ai oublié de retirer
    OpenGL est une librairie graphique 3D très évoluée et totalement portable offrant de nombreuses ressources aux programmeurs cherchant à faire de la synthèse d'images (pour les jeux par exemples).



    Je sais que ce pseudo est prétentieux mais je ne savais quoi mettre d'autre (à part Bill Gates peut-être !? )

  6. #6
    Membre averti Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Points : 332
    Points
    332
    Par défaut
    Ben c'est normal que ça ne marche pas puisque tu écrases tes données à chaque ligne.

    Il faut faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $login[] = $tout['login'];
    $pass[] = $tout['pass'];
    et après vérifier que ton pass est bien dans ton array.

    Cela dit ce n'est pas la bonne méthode, il faut que tu choisisses dans ta requête le login et le pass que tu veux vérifier directement et ne pas faire ton traitement en php ...
    Linio

  7. #7
    Débutant Avatar de jockyboss777
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 257
    Points : 68
    Points
    68
    Par défaut
    Il m'affiche autant de fois qu'il y a de mots de passe
    $login=$MDP

    sinon comment on peut faire d'autre ?
    OpenGL est une librairie graphique 3D très évoluée et totalement portable offrant de nombreuses ressources aux programmeurs cherchant à faire de la synthèse d'images (pour les jeux par exemples).



    Je sais que ce pseudo est prétentieux mais je ne savais quoi mettre d'autre (à part Bill Gates peut-être !? )

  8. #8
    Membre averti Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Points : 332
    Points
    332
    Par défaut
    Bon, il faut recadrer.

    Si ce que tu veux faire c'est vérifier à la connection de quelqu'un que son mot de passe et login sont bon, c'est pas du tout comme ça qu'il faut faire.

    Tu dois faire un formulaire et faire une requête qui ne te renvoie QUE la ligne correspondant à ton potentiel utilisateur en fonction de son login et mot de passe.

    Du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT id_user FROM matable where login='".$login." AND password = '".$monpassword."'";
    Ensuite tu vérifie si la ligne existe bien, et si oui, bingo, sinon tu renvoies un message d'erreur.

    De plus je ne sais pas quelle type de sécurité tu veux avoir pour ton site, mais avoir des mots de passes cryptés est un minimum (cf fonction sha1 en php).
    Linio

  9. #9
    Débutant Avatar de jockyboss777
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 257
    Points : 68
    Points
    68
    Par défaut
    et cette requette sql je dois la mettre ou ??
    OpenGL est une librairie graphique 3D très évoluée et totalement portable offrant de nombreuses ressources aux programmeurs cherchant à faire de la synthèse d'images (pour les jeux par exemples).



    Je sais que ce pseudo est prétentieux mais je ne savais quoi mettre d'autre (à part Bill Gates peut-être !? )

  10. #10
    Membre averti Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Points : 332
    Points
    332
    Par défaut
    Ben à la place de la tienne...

    Hum, je vais pas réécrire ton programme, il y a des tutos sur le site sur la programmation MySQL/PHP, il y a même des exemples sur la mise en place de ce type de procédures de reconnaissance d'utilisateur.
    Linio

  11. #11
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2021
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Février 2021
    Messages : 9
    Points : 13
    Points
    13
    Par défaut exemple avec encryptation
    code formulaire balise div

    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
    <?php
    //THE KEY FOR ENCRYPTION AND DECRYPTION
    $key = 'qkwjdiw239&&jdafweihbrhnan&^%$ggdnawhd4njshjwuuO';
    //ENCRYPT FUNCTION
    function encryptthis($data, $key) {
        $encryption_key = base64_decode($key);
        $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
        $encrypted = openssl_encrypt($data, 'aes-256-cbc', $encryption_key, 0, $iv);
        return base64_encode($encrypted . '::' . $iv);
    }
    //DECRYPT FUNCTION
    function decryptthis($data, $key) {
        $encryption_key = base64_decode($key);
        list($encrypted_data, $iv) = array_pad(explode('::', base64_decode($data), 2),2,null);
        return openssl_decrypt($encrypted_data, 'aes-256-cbc', $encryption_key, 0, $iv);
    }
     
    if(isset($_POST['submit'])){
     
        //GET POST VARIABLES
        $firstName=$_POST['firstName'];
        $email=$_POST['email'];
     
        //THE ENCRYPTION PROCESS
        $nameencrypted=encryptthis($firstName, $key);
        $emailencrypted=encryptthis($email, $key);
     
        //THE DECRYPTION PROCESS
        $namedecrypted=decryptthis($nameencrypted, $key);
        $emaildecrypted=decryptthis($emailencrypted, $key);
     
        //DISPLAY RESULTS
        echo '<h2>Original Data</h2>';
        echo '<p>Name: '.$firstName.'</p>';
        echo '<p>Email: '.$email.'</p>';
        echo '<h2>Encrypted Data</h2>';
        echo '<p>Name Encrypted: </p><p style="background-color:yellow">'.$nameencrypted.'</p>';
        echo '<p>Email Encrypted: </p><p style="background-color:yellow; word-break: break-all;">'.$emailencrypted.'</p>';
        echo '<h2>Decrypted Data</h2>';
        echo '<p>Name Decrypted: '.$namedecrypted.'</p>';
        echo '<p>Email Decrypted: '.$emaildecrypted.'</p>';
        echo '<h2>Insert Results Into Database</h2>';
        echo '<p>We will insert the encrypoted information into the database with this code.</p>'; ?>
        <pre> mysqli_query($con,"INSERT INTO people(`name`, `email`)
        VALUES ('$nameencrypted','$emailencrypted')");</pre>
     
        <h2>Retreieve Results From Database</h2>
        <p>We will retrieve the results from the database with this code;</p>
        <pre>
        $con = new mysqli("$host", "$username", "$password", "$dbname");
        $result = $con->query("SELECT * FROM people") ;
        while ($row = $result->fetch_assoc()) {
            echo decryptthis($row['name'], $key);
            echo decryptthis($row['email'], $key);
        }
        </pre>
        <?php
    }
     
    //SEPERATOR
    echo '<div class="well"><h2>Our Form</h2>';
     
    //FORM FOR OUR EXAMPLE
    echo '<form method="post">
      <div class="form-group">
        <label for="firstName">Enter Name Here</label>
        <input type="text" class="form-conrtol" name="firstName">
      </div>
      <div class="form-group">
        <label for="email">Enter Email Here</label>
        <input type="email" class="form-conrtol" name="email">
      </div>
      <input type="submit" name="submit" class="btn btn-success btn-lg" value="submit">
    </form>';
    ?>
              </div>
            </div>
            <div class="col-sm-3"></div>
          </div>
        </div>
      </body>
    </html>
    Dans l'exemple ici la clé publique est accessible dans le script utiliser post methode php avec différents algorithmes pour former la clé dans un fichier à la racine hors internet attention la bibliothèque open ssl 1.0 et open sll doit être installée sur votre hébergement

Discussions similaires

  1. Crypter des mots de passe dans une base de données WordPress
    Par DarckCrystale dans le forum WordPress
    Réponses: 11
    Dernier message: 26/02/2021, 23h05
  2. Réponses: 11
    Dernier message: 24/05/2011, 09h50
  3. Réponses: 2
    Dernier message: 05/05/2010, 17h01
  4. Comment sécuriser les mots de passe dans la base de données ?
    Par yacine.dev dans le forum Développement Web en Java
    Réponses: 3
    Dernier message: 07/04/2010, 10h59
  5. Réponses: 4
    Dernier message: 29/12/2009, 13h10

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