Formulaire de mot de passe perdu

Résolu
Sub_Mat
Messages postés
79
Date d'inscription
vendredi 27 mai 2005
Statut
Membre
Dernière intervention
17 octobre 2010
- 19 févr. 2009 à 23:22
Lyle56
Messages postés
240
Date d'inscription
jeudi 1 mai 2008
Statut
Membre
Dernière intervention
19 juillet 2012
- 21 sept. 2010 à 20:02
Bonjour à tous,
Bon voila, je suis en train de mettre en place un système de récupération de mot de passe sur mon site, et j'ai beau chercher, mais je ne trouve pas l'erreur dans mon code. Lorsque j'appuie sur le bouton "BT_Recuperermotdepasse" il ne se passe rien !

Mon formulaire :

<form method= "post">

</form>

Voici mon code php :

<?php
if(isset($_POST["BT_Recuperermotdepasse"]))
{
 if($_POST["Adresse_Email_8"] !='')
  {
  mysql_connect("localhost", "XXXXX", "XXXXX");
  mysql_select_db("php");
  $retour = mysql_query
  ("SELECT COUNT(*) AS nbre_entrees FROM
  Comptes_Utilisateurs
  WHERE
  Adresse_Email_8 ='". $_POST["Adresse_Email_8"] ."' AND  Actif='1'");
  $donnees = mysql_fetch_array($retour);
  $nbtrouver = $donnees['nbre_entrees'];
  mysql_close();
  
   if($nbtrouver == 0){   
   $message = "Désolé mais l'adresse email '". $_POST["Adresse_Email_8"] ."' n'existe pas.";
   }
   else
   { 
   mysql_connect("localhost", "XXXXX", "XXXXX");
   mysql_select_db("php");
   $reponse = mysql_query("SELECT * FROM Comptes_Utilisateurs WHERE
   Adresse_Email_8='".$_POST["Adresse_Email_8"]."' 
   AND Actif='1'");
   $donnees = mysql_fetch_array($reponse);
   $Nom_Utilisateur_8 = $donnees['Nom_Utilisateur_8'];
   $Mot_de_Passe_8 = $donnees['Mot_de_Passe_8'];
   mysql_close();
   
   $subject = "Recuperation de mot de passe";  
   $TO = "'".$_POST["Adresse_Email_8"]."'";
   $h  = "From: " . $TO;
   $message_mail = "Recuperation de mot de passe
   Bonjour $Nom_Utilisateur_8,
   --------------------------------------------------------------------------------------------
   Votre mot de passe : $Mot_de_Passe_8
   --------------------------------------------------------------------------------------------";
    mail($TO, $subject, $message_mail, $h);
    $message_succes = "Votre mot de passe vient être envoyé par mail !";
   } 
  }
   else
  {
  $message = "Adresse email invalide !
Merci de bien remplir le champ ci dessous.";
  }
}
?>

Merci d'avance pour vos réponses,
Cordialement Sub_Mat

8 réponses

Sub_Mat
Messages postés
79
Date d'inscription
vendredi 27 mai 2005
Statut
Membre
Dernière intervention
17 octobre 2010

20 févr. 2009 à 09:54
J'ai tout simplement enlevé Actif='1' dans ma requète et maintenant sa marche !
Encore merci pour m'avoir aider !
A bientot,
Sub_Mat
3
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
41
20 févr. 2009 à 09:07
salut

  $reponse = mysql_query("SELECT * FROM Comptes_Utilisateurs WHERE
   Adresse_Email_8='".$_POST["Adresse_Email_8"]."' 
   AND Actif='1'") or die(mysql_error());
0
Sub_Mat
Messages postés
79
Date d'inscription
vendredi 27 mai 2005
Statut
Membre
Dernière intervention
17 octobre 2010

20 févr. 2009 à 09:35
Salut Coucou747,
Merci de m'avoir répondu !
J'ai ajouter "or die(mysql_error());" à ma requète, comme tu m'as dis.
Et toujours rien, aucun message d'erreur !
Je ne vois pas ou est le problème, pour moi tout est logique dans ma démarche !
0
Sub_Mat
Messages postés
79
Date d'inscription
vendredi 27 mai 2005
Statut
Membre
Dernière intervention
17 octobre 2010

20 févr. 2009 à 09:38
Excuse moi, si si j'ai bien un message d'erreur : Unknown column 'Actif' in 'where clause'
Peux-tu me dire comment résoudre ce problème ?
Merci d'avance
0

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

Posez votre question
cs_tofinger
Messages postés
1
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
5 août 2009

5 août 2009 à 22:34
Bonsoir à tous !

je suis intéressé par le formulaire de retour de compte client et je souhaiterai l'intégrer à une de mes pages.
Pourriez vous m'orienter, svp?
merci d'avance
tof
0
cs_moumouf
Messages postés
70
Date d'inscription
lundi 3 août 2009
Statut
Membre
Dernière intervention
9 juillet 2011

5 août 2009 à 22:53
sans vouloir chipoter, il vaut mieux stocker les mots de passe de façon cryptée avec un md5 par exemple, quitte a régénérer un nouveau pass en cas de perte ou alors stocker dans une base différente les équivalences md5 <-> passe non crypté.

Salutations
0
kpiforever
Messages postés
3
Date d'inscription
mardi 16 août 2005
Statut
Membre
Dernière intervention
21 septembre 2010

21 sept. 2010 à 13:42
BJR à toi,

je n'arrive pas à comprendre le sens de cette ligne:
$nbtrouver = $donnees['nbre_entrees'];

Bref! Je te suggère de le remplacer par cette ligne pour compter le nombre de résultat qui satisfont à ta requête:

$nbtrouver = mysql_num_rows['$donnees'];

Good Luck!
0
Lyle56
Messages postés
240
Date d'inscription
jeudi 1 mai 2008
Statut
Membre
Dernière intervention
19 juillet 2012
2
21 sept. 2010 à 20:02
Bonjour,

@kpiforever

Décortiquons cette requéte :

SELECT COUNT(*) AS nbre_entrees FROM  Comptes_Utilisateurs


On compte le nombre de Comptes_Utilisateurs et on range le résultat dans une colonne nommée 'nbre_entrées'

  WHERE Adresse_Email_8 ='". $_POST["Adresse_Email_8"] ."' AND  Actif='1'");


Ce décompte est fait pour les comptes qui ont l'adresse saisie dans le formulaire
[ en passant si Actif est un booléen en base la syntaxe est soit 'Actif = 1' soit 'Actif = true' ]

Lorsque qu'il fait son ' $donnees = mysql_fetch_array($retour);'
il range dans données le premier résultat de sa requéte ( qui au passage n'en compte qu'un )
l'index $donnees['nbre_entrees'] contient donc bien le nombre de compte trouvés.

@Sub_Mat

Attention à ton code : tu ne test pas la validité du mail; ici si on t'envoie ' ' le script va executer ta requête ... et donc planter...

l'idéal au lieu de faire :
if($_POST["Adresse_Email_8"] !='')


pourrais être ceci :

$Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#'; 
   if(preg_match($Syntaxe,$mail_test)) 


La variables $Syntaxe va varié suivant les tutos, personnes ou autres ...
0