Formulaire de changement de mot de passe php

XdelevophpX -  
 XdevelophpX -
Bonjour , je suis débutant en php et donc voila je tourne en rond depuis un bon momment à chercher comment faire en sorte que les utilisateurs inscrits sur mon site puissent changer leurs mot de passe.

En gros , je cherche un formulaire de changement de mdp en php .

Merci .
A voir également:

10 réponses

XdevelophpX
 
Jai essayer de le faire mais j'obtient ce message :
Parse error: syntax error, unexpected T_STRING in

Voici la page formulaire :
<?php
session_start();
if (!isset($_SESSION['login'])) {
header ('Location: membre.php');
exit();
}
?>
<html>
<body>
<form method="post" action="traitement.php">
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">
</body>
</html>
--------------
Voici la page de traitement :
<?php

$base = mysql_connect ('localhost', 'utilisateur', 'Mon MDP');
mysql_select_db ('Ma base de données', $base);

// tu récupère l'ancien mot de passe dans la bdd
$sql = mysql_query("SELECT pass_md5 FROM membre WHERE id = " . $id[id] .");
list($pass_md5) = 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 ($pass-md5 == md5($pass_old)
{
//si oui tu update et encrypte le nouveau mot de passe dans la bdd

$pass-md5 = md5($new_pass);

$query = mysql_query("UPDATE membre SET pass_md5 = '" . $pass_md5 . "' WHERE id = " . $id[id] .");

echo "mot de passe changé";
}
else
{
echo "Ancien mot de passe non valide";
}
}
else
{
echo "Mot de passe de confirmation incorrecte";
}
?>

SVP je comprend pas
1
XdevelophpX
 
Jai 3 tables dans ma base de donné :
-id
-login
-pass_md5
0
jeremy.s Messages postés 1226 Date d'inscription   Statut Membre Dernière intervention   79
 
Quelle ligne l'erreur ?
0
Utilisateur anonyme
 
$id[id] n'est pas déclaré?
0
XdevelophpX
 
Je vais vous dire ...
0
XdevelophpX
 
Ligne 23
0
jeremy.s Messages postés 1226 Date d'inscription   Statut Membre Dernière intervention   79
 
Salut !

Si tu as fait l'inscription, c'est le même principe ;-)
0
loupix
 
si ta leur email dans une db, renvois un message avec un lien spécial (avec un code hash MD5 ou SHA)
après tu renvois le liens vers un formulaire pour changer le mot de pass ;-)
0
Utilisateur anonyme
 
Bonsoir,
tu peux généré un nouveau mot de passe que tu envois par mail.

Par la suite la personne en se connectant peux changer son mot de passe.

On peut même l'y obliger par exemple en créer une colonne "pass_changer".
0 par défaut et 1 si modifié.

Quand tu envois le nouveau mot de passe la valeur passe à 1.

On vérifié à la connexion si c'est égal à 1, si oui on redirige l'utilisateur vers la page de changement de mot de passe.

Une fois le mot de passe changer, on repasse pass_changer à la valeur par défaut (0).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
XdevelophpX
 
re bonjour , ca m'aide pas du tout . Je veut juste un formulaire de changement mdp en php .
0
Utilisateur anonyme
 
Le formulaire dépends de ce que tu as dans ta base de donnée et de tes scripts.

Un formulaire et un traitement php n'est pas le même pour tout le monde.

Le mieux serait que tu apprennes le php
0
jeremy.s Messages postés 1226 Date d'inscription   Statut Membre Dernière intervention   79
 
Tu fais un formulaire ou le mec dis son ancien mdp, son nouveau et la confirmation de sous nouveau.

Ensuite en PHP tu vérifie si l'ancien mdp correspond à celui en BDD, si oui tu le remplace par le nouveau.
0
XdevelophpX
 
Problème à la ligne 23
0
Nyctaclope Messages postés 5315 Date d'inscription   Statut Membre Dernière intervention   1 253
 
Bonjour
Une accolade de trop, me semble-t-il
else
{
echo "Ancien mot de passe non valide";
}
}<==
else ....

Nyctaclope
0
XdevelophpX
 
Ca me fait toujours le meme probleme
0
Utilisateur anonyme
 
Nan l'accolade n'est pas en trop.

$query = mysql_query("UPDATE membre SET pass_md5 = '".$pass_md5."' WHERE id = '".$id[id]."'");


Comme ça, ça ne va pas mieux?
0
XdevelophpX
 
Je vais voir ca ...
0
XdevelophpX
 
Toujours pareil je comprend pas.
0