[RESOLU] Aide Script (Renvoi des information de connexion)

Grepher76380
Invité n'ayant pas de compte PHPfrance

18 juil. 2012, 18:49

Bonjour,

Voici mon petit problème j'ai trouvez un script en php d'espace membre pour mon site je les modifier comme je pouvait pour l'inscription et la connexion mais le soucis je bloque sur se code:

Code : Tout sélectionner

<?php require('include.php'); ?> <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Identifiants oubliés</title> <link href="style/style.css" rel="stylesheet" type="text/css"> </head> <body> <div class="content" > <?php if(isset($_POST['send'])){ $forget = $db->prepare("SELECT `pseudo`,`mdp` FROM `users` WHERE `mail` = :mail LIMIT 1"); $forget->execute(array( "mail" => $_POST['mail'] )); $dnn = $forget->fetchObject(); $mdp = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5(key_encrypt), base64_decode($dnn->mdp), MCRYPT_MODE_CBC, md5(md5(key_encrypt))), '\0'); $message = "Identifiants :<br><br> Pseudo : ".$dnn->pseudo." <br>Mot de passe : ".$mdp; $headers = "From: ".company_name."<".company_mail.">\n"; $headers .= "Reply-To: ".company_mail."\n"; $headers .= "Content-Type: text/html; charset=\"iso-8859-1\""; mail($_POST['mail'],"Identifiants [".company_name."]",$message,$headers); echo "<div class=\"succes\">vos identifiants ont été envoyés à votre adresse email</div>"; redirect("index.php", 5); } ?> <h2>Identifiants oublié ?</h2> <form action="forget.php" method="post" dir="ltr" lang="fr"> <p><label>Adresse mail : <input type="email" name="mail"> </label></p> <p><input type="submit" name="send" value="Envoyer"></p> </form> </div> </body> </html>
J'ai ajouter la ligne n°26 [echo "<div class=\"succes\">vos identifiants ont été envoyés à votre adresse email</div>";] pour que quand l'email et correcte sa marque que l'identifiant a bien était revoyez cela marche (même si je c'est pas si c'est cela que j'aurait du mettre car moi et le php cela fait deux mais faut bien un début à tous) mais le nouveaux soucis c'est quand l'adresse E-mail ne correspond pas à un de mais membre dans la base de donnée sa me marque que l' E-mail et correct hors cela n'est pas le cas es que vous pouvait m'aider svp ?

Eléphant du PHP | 190 Messages

18 juil. 2012, 20:46

Salut,

Pas sur car je ne maitrise pas PDO,

Mais je pense qu'il faut tester si ta requête retourne un resultat, ce qui n'est pas le cas avec un mauvais email.

FetchObject retourne la prochaine ligne ou false en cas d'erreur, donc en testant '$dnn = $forget->fetchObject()' ca devrait le faire...
<?php require('include.php'); ?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Identifiants oubliés</title>
<link href="style/style.css" rel="stylesheet" type="text/css">
</head>
<body>
<div class="content" >
<?php
   if(isset($_POST['send'])){
      $forget = $db->prepare("SELECT `pseudo`,`mdp` FROM `users` WHERE `mail` = :mail LIMIT 1");
      $forget->execute(array(
         "mail" => $_POST['mail']
      ));
      if($dnn = $forget->fetchObject()){
          $mdp = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5(key_encrypt), base64_decode($dnn->mdp), MCRYPT_MODE_CBC, md5(md5(key_encrypt))), '\0');
          $message = "Identifiants :<br><br>
          Pseudo : ".$dnn->pseudo."
          <br>Mot de passe : ".$mdp;
          $headers = "From: ".company_name."<".company_mail.">\n";
          $headers .= "Reply-To: ".company_mail."\n";
          $headers .= "Content-Type: text/html; charset=\"iso-8859-1\"";
          mail($_POST['mail'],"Identifiants [".company_name."]",$message,$headers);
          echo "<div class=\"succes\">vos identifiants ont été envoyés à votre adresse email</div>";
          redirect("index.php", 5);
    }
   }
?>
<h2>Identifiants oublié ?</h2>
<form action="forget.php" method="post" dir="ltr" lang="fr">
<p><label>Adresse mail :
<input type="email" name="mail">
</label></p>
<p><input type="submit" name="send" value="Envoyer"></p>
</form>
</div>
</body>
</html>
Si c'est pas ca, reviens, on trouvera ;)

Eléphanteau du PHP | 13 Messages

18 juil. 2012, 23:20

Bonsoir,

Désoler de répondre aussi tard j'était occupé alors ton code fonctionne (mais) je voudrait qu'il affiche un message d' erreur (qui prévient que l' E-mail ne correspond pas un membre) (Votre E-mail ne correspond à aucun de nos membres) Enfin tu voit de quoi je veut parler, sinon je peut te donné plus de précision si cela ne te dérange pas ?

Cordialement Grepher76380

ViPHP
xTG
ViPHP | 7331 Messages

19 juil. 2012, 09:41

if($dnn = $forget->fetchObject()){
  //...
}else{
  echo 'Email non trouvé.';
}
;)

Eléphanteau du PHP | 13 Messages

19 juil. 2012, 12:42

Bonjour,

Je tien à vous dire merci pour votre aide à tous les deux "Zahnzao" et "xtg" mon code fonctionne très bien donc voila merci.

Je vais m'être un lien qui redirigera sur se site pour vous faire de la Pub.

Cordialement Grepher76380.