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 44
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
Rejoignez-nous