[php] script modification mot de passe (md5) [Résolu/Fermé]
Bonjour,
j'ai un peu du mal.
Je veux obtenir un script PHP pour modifier le mot de passe des membres de mon site.
J'ai un petit probleme, lors de la validation, ca me marque erreur 500. L'erreur viens de la 2e page, celle qui met a jour le mot de passe dans la base de donné.
--------------------
J'ai un formulaire,
1 champ pour taper le mot de passe actuel et 1 champ qui va remplacer l'ancien.
-----------------------
Et 1 autre page qui mettra a jour le mot de passe dans la base de donné.
j'ai un peu du mal.
Je veux obtenir un script PHP pour modifier le mot de passe des membres de mon site.
J'ai un petit probleme, lors de la validation, ca me marque erreur 500. L'erreur viens de la 2e page, celle qui met a jour le mot de passe dans la base de donné.
--------------------
J'ai un formulaire,
1 champ pour taper le mot de passe actuel et 1 champ qui va remplacer l'ancien.
<form action='profil-mdp2.php' method='post' enctype='multipart/form-data' name='form1'> <table width='600' border='0' align='center'> <tr> <td><label for="mdp">Ancien mot de passe</label></td> <td><input name="passe_enc" type="password" id="mdp"></td> </tr> <tr> <td><label for="mdp2">Nouveau mot de passe</label></td> <td><input name="nouv_passe" type="password" id="mdp2"></td> </tr> <tr> <td><input type="submit" name="Submit" value="Modifier"></td> </tr> </table> </form>
-----------------------
Et 1 autre page qui mettra a jour le mot de passe dans la base de donné.
<?php session_start(); require_once('config.php'); //récupération du formulaire $passe_enc= $_POST['passe_enc']; $nouv_passe= $_POST['nouv_passe']; if ($passe_enc==$nouv_passe) { $mdp=md5($nouv_passe); mysql_query("UPDATE membres SET passe='$mdp' WHERE passe='$passe_enc'") or die ('Erreur : '.mysql_error()); } else } echo "Attention votre mot de passe ne correspond pas a celui que vous avez définie lors de votre enregistrement."; } ?>
A voir également:
- [php] script modification mot de passe (md5)
- [php] script modification mot de passe (md5) ✓ - Forum - PHP
- Php:espace membre mot de passe md5 probleme ✓ - Forum - PHP
- [php] Script changer mot de passe ✓ - Forum - PHP
- Modification mot de passe PHP ✓ - Forum - PHP
- [PHP] Encoder les mots de passe en MD5 ✓ - Forum - PHP
6 réponses
hugs-giver
- Messages postés
- 90
- Date d'inscription
- jeudi 27 décembre 2007
- Statut
- Membre
- Dernière intervention
- 10 juin 2014
Je pense aussi que tu devrais tout refaire dans ton script car tu fait cette action :
mysql_query("UPDATE membres SET passe='$mdp' WHERE passe='$passe_enc'")
Imagine toi que 2 membres (voir plus) aient le même mot de passe, tu modifierais les deux mot de passe, et l'autre membre qui à rien demandé serait pas content!!!
Et regarde un peut, tu modifie rien, "SET passe='$mdp' WHERE passe='$passe_enc'" avec cette action, tu enregistre l'ancien mot de passe sur les entré qui ont l'ancien mot de passe......
Sans compter que tu dois sécuriser tes infos et verifier si les champs ont été remplis:(
Il faut que tu fasse :
<?php
if($_POST['passe_nouv'] != NULL AND $_POST['passe_anc'] != NULL)
{
session_start();
require_once('config.php');$passe_enc = mysql_real_escape_string(htmlspecialchars(md5($_POST['passe_enc'])));
$passe_nouv = mysql_real_escape_string(htmlspecialchars(md5($_POST['passe_nouv'])));
if($passe_enc == $mdp)
{
mysql_query("UPDATE membres SET passe='$passe_nouv' WHERE id = '$id_membre'") or die ('Erreur : '.mysql_error());
}
else
{
echo "Attention votre mot de passe ne correspond pas a celui que vous avez définie lors de votre enregistrement.";
}
}
else//champs non remplis
{
echo "Champs obligatoir";
}
?>
Tu vois, j'ai rajouter une variable "$id_membre" celle-ci, tu est sur quel est unique, contrairement à ton mot de passe!!!!!
Tu devrais aussé mettre un champs de verification pour être sur que le membre n'a pas fait d'erreur de saisis!!
Si tu as d'autres questions, n'hésite pas
mysql_query("UPDATE membres SET passe='$mdp' WHERE passe='$passe_enc'")
Imagine toi que 2 membres (voir plus) aient le même mot de passe, tu modifierais les deux mot de passe, et l'autre membre qui à rien demandé serait pas content!!!
Et regarde un peut, tu modifie rien, "SET passe='$mdp' WHERE passe='$passe_enc'" avec cette action, tu enregistre l'ancien mot de passe sur les entré qui ont l'ancien mot de passe......
Sans compter que tu dois sécuriser tes infos et verifier si les champs ont été remplis:(
Il faut que tu fasse :
<?php
if($_POST['passe_nouv'] != NULL AND $_POST['passe_anc'] != NULL)
{
session_start();
require_once('config.php');$passe_enc = mysql_real_escape_string(htmlspecialchars(md5($_POST['passe_enc'])));
$passe_nouv = mysql_real_escape_string(htmlspecialchars(md5($_POST['passe_nouv'])));
if($passe_enc == $mdp)
{
mysql_query("UPDATE membres SET passe='$passe_nouv' WHERE id = '$id_membre'") or die ('Erreur : '.mysql_error());
}
else
{
echo "Attention votre mot de passe ne correspond pas a celui que vous avez définie lors de votre enregistrement.";
}
}
else//champs non remplis
{
echo "Champs obligatoir";
}
?>
Tu vois, j'ai rajouter une variable "$id_membre" celle-ci, tu est sur quel est unique, contrairement à ton mot de passe!!!!!
Tu devrais aussé mettre un champs de verification pour être sur que le membre n'a pas fait d'erreur de saisis!!
Si tu as d'autres questions, n'hésite pas
william7007
- Messages postés
- 335
- Date d'inscription
- dimanche 28 décembre 2008
- Statut
- Membre
- Dernière intervention
- 23 mars 2010
bonjour regarde ça voir
l'accolade juste devant le else je crois quelle devrais etre comme ça { et non }
cdlt.
if ($passe_enc==$nouv_passe) { $mdp=md5($nouv_passe); mysql_query("UPDATE membres SET passe='$mdp' WHERE passe='$passe_enc'") or die ('Erreur : '.mysql_error()); } else } // je crois que l'acolade devrais etre comme ça { echo "Attention votre mot de passe ne correspond pas a celui que vous avez définie lors de votre enregistrement."; }
l'accolade juste devant le else je crois quelle devrais etre comme ça { et non }
cdlt.
MOH hsow
Olla...
de tout facon, il faut le refaire.
il y a meme une erreur :
if ($passe_enc==$nouv_passe) alors que les deux champ doivent etre different...
de tout facon, il faut le refaire.
il y a meme une erreur :
if ($passe_enc==$nouv_passe) alors que les deux champ doivent etre different...
MOH hsow
j'ai deja un variable $session.
qui est une suite de 30 lettres et chiffre.
Je peux l'utiliser a la place de l'id du membre ?
qui est une suite de 30 lettres et chiffre.
Je peux l'utiliser a la place de l'id du membre ?
MOH hsow
C'est bon !
J'ai ajouter un champ de confirmation "passe_nouv2".
J'ai ajouter un champ de confirmation "passe_nouv2".
<?php /* Script écrit par RVJ-WEB Créé le 27 MAI 2006 Droits de reproduction autorisés */ session_start(); require_once('config.php'); //récupération du formulaire $passe_enc=formulaires($_POST['passe_enc']); $nouv_passe=formulaires($_POST['nouv_passe']); $nouv_passe2=formulaires($_POST['nouv_passe2']); if(isset($passe_enc)) { if(!$nouv_passe || !$nouv_passe2 || strlen($nouv_passe) < 5) { echo'Votre mot de passe ou sa confirmation est inexisant ou votre mot de passe fait moins de 5 carractères<br /><a href="profil.php" onClick="history.back()">Retour</a>'; include_once('includes/bas.php'); return FALSE; } if($nouv_passe!=$nouv_passe2) { echo'Votre mot de passe n\'est pas le meme que sa confirmation.<br /><a href="profil.php" onClick="history.back()">Retour</a>'; include_once('includes/bas.php'); return FALSE; } $passe_enc=md5($passe_enc); $reponse_passe=mysql_query("SELECT passe FROM membres WHERE passe='$passe_enc' AND session='$session'") or die ('Erreur : '.mysql_error()); //verification si mdp valide $count_passe=mysql_num_rows($reponse_passe); if($count_passe == 0) { echo'L\'ancien mot de passe n\'est pas correct.<br /><a href="profil.php" onClick="history.back()">Retour</a>'; include_once('includes/bas.php'); return FALSE; } $nouv_passe=md5($nouv_passe); mysql_query("UPDATE membres SET passe='$nouv_passe' WHERE session='$session'") or die ('Erreur : '.mysql_error()); } echo"<div align=center>Votre mot de passe a bien été modifié<br /><a href='profil.php' onClick='history.back()'>Retour</a></div>"; ?>