0
votes

Comment mettez-vous à jour un mot de passe haché avec PHP et PDO

Les derniers mois, je fais un forum pour un projet d'école, mais je veux qu'un utilisateur puisse changer son propre mot de passe. Comment pouvez-vous mettre à jour un mot de passe avec PHP et PDO.

Je pensais que vous pouvez utiliser: xxx

mais il n'a pas ce que je voulais ...

Et j'ai une forme mais je ne peux pas montrer que, parce que quelque chose s'est mal passé. J'espère que vous pouvez m'aider.


2 commentaires

$ stmt = $ Conn-> préparer ("Mettre à jour le mot de passe de mot de passe '" .password_hash (mot de passe $). "' ''" où id = $ ID "); vous avez la syntaxe


Dans le code que vous avez posté, vous ne semblez que préparer une déclaration. Vous le sauve-vous réellement à la base de données aussi?


3 Réponses :


3
votes

Qu'est-ce que vous utilisez ici s'appelle un déclaration préparée de la cargaison et cela ne vous donne aucune protection contre Injections SQL. Un code correct serait xxx


0 commentaires

1
votes

Tout ce que vous faites est d'écrire le nouveau mot de passe de la base de données après avoir la hausse bien sûr

$password = $_POST['password'];
$confirm_password = $_POST['confirm_password']; 

if($password == $confirm_password){

    $stmt = $conn->prepare("UPDATE password SET password = :pwd WHERE id=:id");
    $stmt->execute([':pwd' => password_hash($password), ':id'=> $id]);
} else {
     .....
}


0 commentaires

0
votes

J'ai trouvé la solution que j'ai manquée le mot de passe_default dans mon mot de passe hachage. Si j'ai fait quelque chose de mal laissé une réaction, j'apprendrais cela.

if(isset($_POST['update_password'])){
$id = $_SESSION['user_id'];  
$password = $_POST['password'];
$confirm_password = $_POST['confirm_password']; 

if(strlen($password) >= 8){
    if($password == $confirm_password){

        $new_password = password_hash($password, PASSWORD_DEFAULT);

        $stmt = $conn->prepare("UPDATE forum_inhoud SET password = :new_password 
        WHERE id=:id");
        $stmt->execute([
            ':new_password' => $new_password,
            ':id' => $id
        ]);

        $_SESSION['success'] = 'Wachtwoord is bijgewerkt!';
        header('Location: ../../profile.php');
        exit(0);
    }
} else {
    $_SESSION['failed'] = 'Er is iets misgegaan!';
    header('Location: ../../profile.php');
    exit(0);
}   
}


0 commentaires