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 :

Récupération password BBD apres password_hash


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2020
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2020
    Messages : 16
    Par défaut Récupération password BBD apres password_hash
    Bonjour à tous , j'ai une base de données phpmyadmin avec pseudo email et password , le password a été hash avec la fonction password_hash. Cependant j'aimerais rajouter à mon site web une récupération du mot de passe style "mot de passe oublié" via e-mail mais je ne sais pas comment récupérer le mot de passe non-haché en tant que variable de session pour l'envoyer ensuite par email à l'utilisateur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $options = [
                                'cost' => 12,
                            ];
     
              $hashpass = password_hash($password, PASSWORD_BCRYPT, $options);
    Merci beaucoup !!

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 511
    Par défaut
    Salut,

    Avec password_hash je ne pense pas que cela soit possible, tu peux seulement le vérifier en utilisant password_verify.

    Pourquoi ne pas proposer à l'utilisateur de réinitialiser son mot de passe ?

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2009
    Messages : 35
    Par défaut
    Citation Envoyé par Toufik83 Voir le message
    Salut,

    Avec password_hash je ne pense pas que cela soit possible, tu peux seulement le vérifier en utilisant password_verify.
    Pourquoi ne pas proposer à l'utilisateur de réinitialiser son mot de passe ?
    Oui ce serait trop facile! Je crois savoir que c'est possible dans un sens mais pas comme tu le voudrais?
    Le mieux est de proposer un nouveau PASS avec la ême Email
    D'ailleurs en procédant de la sorte, l'internaute sait que tu ne possèdes pas son PASS décrypté.

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2020
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2020
    Messages : 16
    Par défaut Problème PDO
    Rebonjour merci pour vos réponses, j'ai opté pour un envoi de mot de passe temporaire par mail et ensuite je le hash mais lors du changement j'ai une erreur avec le nombre de paramètres alors qu'il n'y en a qu'un :

    Connect > OK !Mail envoyé
    Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in /home/bapt/Site-avec-Paul/pwd_forget.php:65 Stack trace: #0 /home/bapt/Site/pwd_forget.php(65): PDOStatement->execute(Array) #1 {main} thrown in /home/bapt/Site/pwd_forget.php on line 65
    PS : je reçois bien le mail avec le mot de passe aléatoire exemple : Voici votre mot de passe temporaire merci de le changer dès que possible: 5B28PJZIEf
    Code HTML : 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
     <body>
            <div id="wrapper">
                <a href=dashboard.php class='retour'>Retour accueil</a>
                <form method="post">
                        <input type="email" name="emaile" id="emaile" placeholder="Votre Email"><br/>
                        <input type="submit" name="formsend" id="formsend" value="Envoyer"><br/>
     
                </form>
     
     
                <?php
                    include 'database.php';
                            global $db;
     
     
                    if(isset($_POST['formsend'])){
                        extract($_POST);
     
                        $c = $db->prepare("SELECT email FROM users WHERE email = :email");
                        $c->execute(['email' => $emaile]);
                        $result = $c->rowCount();
                        if($result == 1){
                                $length=10;
                                            $chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; // Création d'un de mot de passe de 10 caractères aléatoires avant chiffres majuscules et minuscules
                                            $string = '';
                                            for($i=0; $i<$length; $i++){
                                                    $string .= $chars[rand(0, strlen($chars)-1)];
                                            }
     
                                                    $success=mail($emaile,"Oubli de mot de passe","Voici votre mot de passe temporaire merci de le changer dès que possible: $string",'From: adresse@test.com'); // envoi du mail à l'utilisateur
                                                    if (!$success) {
                                                        $errorMessage = error_get_last()['message'];
                                                        echo $errorMessage;
                                                    }
                                                    else{
                                                        echo "Mail envoyé ;)";
                                                        $options = [
                                                    'cost' => 12,
                                            ];
                                                        $hashpass = password_hash($string, PASSWORD_BCRYPT, $options);
                                                        $q= $db->prepare("UPDATE users SET password = :password WHERE email = :emaile");
                                                        $q->execute([
                                                        'password'=> $hashpass
                                                        ]);
                                                    }
                                    }
                            }
                    ?>
       		</div>
        </body>

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        $q= $db->prepare("UPDATE users SET password = :password WHERE email = :emaile");
        $q->execute([
        'password'=> $hashpass
        ])
    Il manque ':emaile'

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2020
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2020
    Messages : 16
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $hashpass = password_hash($string, PASSWORD_BCRYPT, $options);
                    				$q= $db->prepare("UPDATE users SET password = :password WHERE email = :emaile");
                            		$q->execute([
                                		'password'=> $hashpass,
                                		'email'=> $emaile
                            		]);
    					        }
    toujours la même erreur ainsi

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

Discussions similaires

  1. Récupération de contacts après migration
    Par dj_benz dans le forum Outlook
    Réponses: 3
    Dernier message: 27/06/2007, 16h57
  2. Récupération des données après restauration du système avec Ghost
    Par digital prophecy dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 12/06/2007, 14h05
  3. Réponses: 1
    Dernier message: 04/06/2007, 11h34
  4. Réponses: 3
    Dernier message: 19/04/2007, 21h55
  5. [MySQL] syntaxe variable lors d'une récupération de valeurs après mysql
    Par mussara dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 06/11/2006, 13h30

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