Bonjour,

déjà j'adore votre site !

Est j'ai une question très importante.

Je n'arrive pas a créer un changement de mot de pass dans l'espace membre.

(Que les membres puissent changer de mot de pass) merci de m'aider c'est vraiment urgent mais énormément lol.

A++++++++ très bon site et t'est vraiment un pro.

mon site : Malcolm tv

8 réponses


MrGuillou
Réponse acceptée

Comme dit au dessus il te faut 3 champs
Et tu à juste à utilisé la requete sql de Kagogal pour envoyer le mot de passe dans la bdd

la page avec le formulaire

<form method="post" action="page de traitement">
Nouveau mot de passe : <input type="password" name="new_pass">
Confirmation : <input type="password" name="new_pass_conf">
Ancien mot de passe : <input type="password" name="pass_old">
<input type="submit" name="Submit" value="Valider">

Puis la page de traitement

// tu récupère l'ancien mot de passe dans la bdd
$sql = mysql_query("SELECT password FROM users WHERE id = " . $users[id] .");
list($password) = mysql_fetch_array($sql);
// tu compare si le nouveau passe correspond à l'ancien
if ($new_pass == $new_pass_conf)
{
    // tu encrypte l'ancien mot de passe du formulaire pour le comparer à celui de ta bdd
    $pass_old = md5($pass_old);
    //tu vérifie si il sont identique
    if ($password == $pass_old)
    {
        //si oui tu update et encrypte le nouveau mot de passe dans la bdd
        $pass = md5($new_pass);  
        $query = mysqli_query("UPDATE users SET password = '" . $pass . "' WHERE id = " . $users[id] .");
        echo "mot de passe changé";
    }
    else
    {
        echo "Ancien mot de passe non valide";
    }
}
else
{
    echo "Mot de passe de confirmation incorrecte";
}

Bien sur ne pas oublier les autres traitement pour la sécurité

Salut,

Tu créer un formulaire avec deux inputs de type "password":

  • le 1° pour modifier le mots de passe
  • et le 2° pour le comparer avec le 1°

==> si les 2 champs son identique, tu fais un update de ta Base de données dans le champ de l'utilisateur concerné.

Salut !
Un changement de mot de passe n'est pas très compliqué. Tu dois faire comme l'inscription d'un membre. Tu récupères celui qui est donné, tu le haches, et ensuite, tu le balances dans la base de données et au bon utilisateur.

Genre, ça :

<?php
    // On immagine qu'on a un retour de formulaire, qu'on a récupéré le nouveau mot de passe et qu'on doit l'inscrire
    $pass = md5($new_pass);

    // Ici, $user[id] est une variable de session pour les membres connectés, qui contient l'id, le pseudo ... 
    $query = mysqli_query($link, "UPDATE users SET password = '" . $pass . "' WHERE id = " . $users[id] .");

Grilled by Dimix

lol ok je test merci a vous.

Pense à mettre ton sujet en résolu une fois ce dernier fait :)

Faut pas marquer résolu dans le titre du sujet, mais valider les réponses qui ton aidées.

Suite à ça le sujet passe tout seul en résolu

Bonne journée à tous

Pour plus de sécurité, tu peux le faire valider par e-mail.