Un problème que personne n'a pu résoudre

Ce topic a été résolu
JxSDev

JxSDev Le 2 mai 2016 à 12:29 (Édité le 25 janvier 2019 à 17:51)

Bonjour 
ça fait presque 3 ou 4 jours que je m'arrache les cheveux pour savoir ce qui se passe au juste
J'ai suivi le tuto de primFX "Mot de passe oublié" et tout allait bien , j'étais heureuse et satisfaite du résultat. mais après tout a basculé !
ce fameux "Undefined index: recup_mail in ... on line 153 " m'a pourri la vie T_T avec une autre erreur par la suite quand je fais entrer le code de vérification "Undefined variable: _SESSION..on line 98 "
j'ai essayé pas mal de choses mais toujours rien , j'ai même cru que c'était un problème de cache mais non ce n'était pas le cas..
Donc For god's sake, someone help me to get out of it :'( D-19 du dépot de mon projet aish ..
Thanks in advance guys :x i'll be so thankful ~  
voila le code :
<?php
require 'inc/bootstrap.php';
    $bdd = new PDO('mysql:dbname=toupackgbd;host=localhost', 'root', '');
    $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
    
    echo var_dump($_POST);
 if(isset($_GET['section']))
     {
        $section = $_GET['section'];
     }
if(isset($_POST['recup_submit'], $_POST['recup_mail']))
{
   if(!empty($_POST['recup_mail']))
   {
      $recup_mail = htmlspecialchars($_POST['recup_mail']);
      if(filter_var($recup_mail,FILTER_VALIDATE_EMAIL))
      {
         $mailexist = $bdd->prepare('SELECT id_customer,company_name FROM customer WHERE email = ?');
         $mailexist->execute(array($recup_mail));
         $mailexist_count = $mailexist->rowCount();
         if($mailexist_count == 1)
         {
            $pseudo = $mailexist->fetch();
            $pseudo = $pseudo->company_name;
            
            $_SESSION['recup_mail'] = $recup_mail;
            $recup_code = "";
            for($i=0; $i < 8; $i++)
            { 
               $recup_code .= mt_rand(0,9);
            }
            $mail_recup_exist = $bdd->prepare('SELECT id FROM reset WHERE mail = ?');
            $mail_recup_exist->execute(array($recup_mail));
            $mail_recup_exist = $mail_recup_exist->rowCount();
            if($mail_recup_exist == 1) 
            {
               $recup_insert = $bdd->prepare('UPDATE reset SET code = ? WHERE mail = ?');
               $recup_insert->execute(array($recup_code,$recup_mail));
            } else {
               $recup_insert = $bdd->prepare('INSERT INTO reset (mail,code) VALUES (?, ?)');
               $recup_insert->execute(array($recup_mail,$recup_code));
            }
         $header="MIME-Version: 1.0\r\n";
         $header.='From:"Toupackgroup.com"<support@Toupackgroup.com>'."\n";
         $header.='Content-Type:text/html; charset="utf-8"'."\n";
         $header.='Content-Transfer-Encoding: 8bit';
         $message = '
         <html>
         <head>
           <title>Récupération de mot de passe - Toupackgroup.com</title>
           <meta charset="utf-8" />
         </head>
         <body>
           <font color="#303030";>
             <div align="center">
               <table width="600px">
                 <tr>
                   <td>
                     
                     <div align="center">Bonjour <b>'.$pseudo.'</b>,</div>
                     Voici votre code de récupération: <b>'.$recup_code.'</b>
                     A bientôt sur <a href="http://Toupackgroup.com/">Toupackgroup.com</a> !
                     
                   </td>
                 </tr>
                 <tr>
                   <td align="center">
                     <font size="2">
                       Ceci est un email automatique, merci de ne pas y répondre
                     </font>
                   </td>
                 </tr>
               </table>
             </div>
           </font>
         </body>
         </html>
         ';
         mail($recup_mail, "Récupération de mot de passe - Toupackgroup.com", $message, $header);
            header("Location:http://127.0.0.1/TOUPACKGROUP/forget.php?section=code");
         } else {
           Session::getInstance()->setFlash('danger',"Cette adresse mail n'est pas enregistrée");
         }
      } else {
         Session::getInstance()->setFlash('danger',"Adresse mail invalide");
      }
   } else {
      Session::getInstance()->setFlash('danger',"Veuillez entrer votre adresse mail");
   }
}
if(isset($_POST['verif_submit'],$_POST['verif_code']))
{
   if(!empty($_POST['verif_code']))
   {
      $verif_code = htmlspecialchars($_POST['verif_code']);
      $verif_req = $bdd->prepare('SELECT id FROM reset WHERE mail = ? AND code = ?');
      $verif_req->execute(array($_SESSION['recup_mail'],$verif_code));
      $verif_req = $verif_req->rowCount();
      if($verif_req == 1)
      {
         $up_req = $bdd->prepare('UPDATE reset SET confirme = 1 WHERE mail = ?');
         $up_req->execute(array($_SESSION['recup_mail']));
         header('Location:http://localhost/TOUPACKGROUP/forget.php?section=changemdp');
      }else{
         Session::getInstance()->setFlash('danger',"Code invalide");
      }
   } else {
      Session::getInstance()->setFlash('danger',"Veuillez entrer votre code de confirmation");
   }
}
if(isset($_POST['change_submit']))
{
   if(isset($_POST['change_mdp'],$_POST['change_mdpc']))
   {
      $verif_confirme = $bdd->prepare('SELECT confirme FROM reset WHERE mail = ?');
      $verif_confirme->execute(array($_SESSION['recup_mail']));
      $verif_confirme = $verif_confirme->fetch();
      $verif_confirme = $verif_confirme->confirme;
      if($verif_confirme == 1) 
      {
         $mdp = htmlspecialchars($_POST['change_mdp']);
         $mdpc = htmlspecialchars($_POST['change_mdpc']);
         if(!empty($mdp) AND !empty($mdpc)) 
         {
            if($mdp == $mdpc){
               $mdp = password_hash($mdp, PASSWORD_BCRYPT);
               $ins_mdp = $bdd->prepare('UPDATE customer SET passwd = ?, reset_at = NOW() WHERE email = ?');
               $ins_mdp->execute(array($mdp, $_SESSION['recup_mail']));
              $del_req = $bdd->prepare('DELETE FROM reset WHERE mail = ?');
              $del_req->execute(array($_SESSION['recup_mail']));
               header('Location:http://localhost/TOUPACKGROUP/login.php');
            } else {
               Session::getInstance()->setFlash('danger',"Vos mots de passes ne correspondent pas");
            }
         } else {
            Session::getInstance()->setFlash('danger',"Veuillez remplir tous les champs");
         }
      } else {
        Session::getInstance()->setFlash('danger',"Veuillez valider votre mail grâce au code de vérification qui vous a été envoyé par mail");
      }
   } else {
      Session::getInstance()->setFlash('danger',"Veuillez remplir tous les champs");
   }
}
?>
<?php require 'inc/header2.php';
  ?>
      <div class="form-group" align="center">
      <h4 class="title-element">Récupération de mot de passe</h4>
    <?php if(isset($_GET['section']) && $_GET['section'] == 'code') { ; ?>
    Un code de vérification vous a été envoyé par mail: <?= $_SESSION['recup_mail'] ?> 
      <br/>
    <form method="post">
       <input type="text" placeholder="Code de vérification" name="verif_code"/><br/>
       <input type="submit" value="Valider" name="verif_submit" class="btn btn-primary"/>
    </form> </div>
    <?php } elseif(isset($_GET['section']) && $_GET['section'] == "changemdp"){ ?>
     <div class="form-group" align="center">
     Nouveau mot de passe pour <?= $_SESSION['recup_mail'] ?>
    <form method="post">
       <input type="password" placeholder="Nouveau mot de passe" name="change_mdp"/><br/>
       <input type="password" placeholder="Confirmation du mot de passe" name="change_mdpc"/><br/>
       <input type="submit" value="Valider" name="change_submit" class="btn btn-primary"/>
    </form> </div>
    <?php } else { ?>
      <div class="form-group" align="center">
    <form method="post">
       <input type="email" placeholder="Votre adresse mail" id="recup_mail" name="recup_mail"/><br/>
       <input type="submit" value="Valider" name="recup_submit" class="btn btn-primary"/>
    </form></div>
<?php } ?>
<?php require 'inc/footer.php'; ?>
TheFlameflo

TheFlameflo Le 2 mai 2016 à 13:02

Salut !
J'ai quelques hypothèses.
Pour récup_mail, je ne crois pas avoir trouvé grand chose.
Ce que tu pourrais faire pour nous aider est de mettre tout ton code (pour bien associer les lignes).

Pour ton problème de sessions, tu dois vérifier deux choses :
Est-ce que ma session est partie (AVANT tout code HTML)
et
Est-ce que je l'ai définie AVANT de l'appeler.

Je suis pas un pro en PHP, mais je crois que ça peut , peut-être, venir de là.

Bonne chance !
JxSDev

JxSDev Le 2 mai 2016 à 13:20 (Édité le 2 mai 2016 à 13:20)

Salut , merci pour ta réponse ^^ 
je vais vous indiquer le numéro des lignes qui contiennent les erreurs dans ce commentaire, parce-que j'ai mis tout le code mais les numeros de lignes on changé un peu :
le Undefined variable: _SESSION.. c'est dans la ligne n° 98 :  $verif_req->execute(array($_SESSION['recup_mail'],$verif_code));
sinon pour $recup_mail , c'est au niveau de la ligne 131 : $del_req->execute(array($_SESSION['recup_mail']));
et 160  aussi  : Nouveau mot de passe pour <?= $_SESSION['recup_mail'] ?>
sinon pour ma Session, normalement elle est définie automatiquement avec session_start dans a classe session, parce que si je met un session_start au debut ça m'affiche "Header already sent by.."
JxSDev

JxSDev Le 2 mai 2016 à 13:32 (Édité le 2 mai 2016 à 16:23)

Bon maintenant j'ai refais tout le code en excluant  ma classe session , l'erreur de Undefined _SESSION est toujours là et je rencontre à nouveau l erreur Undefined index recup_mail on line 160 :(
JxSDev

JxSDev Le 2 mai 2016 à 16:45

sujet resolu : tout est a cause de ma classe session
il fallait l appeler directement Session::getInstance(); x) shame on me haha
dqfjsqhgfdqhvsq

dqfjsqhgfdqhvsq Le 2 mai 2016 à 19:07

Exacte, je ne l'avais pas vu avant !
TheFlameflo

TheFlameflo Le 2 mai 2016 à 21:17

Je suis heureux de savoir que ton problème est résolu ! 😀
JxSDev

JxSDev Le 3 mai 2016 à 10:45

Merci :)
panzer

panzer Le 17 mai 2017 à 22:38

Bonjour j'ai les mêmes soucis que toi mais je n'ai pas bien compris: ou place tu ton "Session::getInstance(); " ?
TheFlameflo

TheFlameflo Le 17 mai 2017 à 22:44

Salut @panzer !

Je pense que "Session::getInstance();" ne vient pas de PHP en lui même, mais d'un Framework.
Le framework a fourni une classe pour gérer la Session.

Si tu disposes du même framework, il faut le placer au début du code.

Sinon, tu peux aussi faire un session_start() pour démarrer une session.

Peu importe la méthode que tu utilises, le lancement de la session doit être mis avant tout autre code.
panzer

panzer Le 17 mai 2017 à 22:57

Le session_start(); est bien placé en début de page,la fonction mail récupère bien la variable $recup_mail puisque je recois le mail,mais le $_SESSION['recup_mail'] figurant dans le formulaire ne récupère pas celle-ci visiblement car rien est entré dans la colonne recuperation de ma table, étant donné l'erreur( Notice: Undefined index: recup_mail in C:\wamp64\www\Panzer\motdepasse\recuperation.php on line 158) .....Ci- joint mon code:

<?php
session_start();

$bdd = new PDO('mysql:host=127.0.0.1;dbname=boubou', 'root', '');


if(isset($_GET['section'])) {
    $section=htmlspecialchars($_GET['section']);
}else{

$section="";}

if(isset($_POST['recup_submit'],$_POST['recup_mail'])) {
   if(!empty($_POST['recup_mail'])) {
      $recup_mail = htmlspecialchars($_POST['recup_mail']);
      if(filter_var($recup_mail,FILTER_VALIDATE_EMAIL)) {
         $mailexist = $bdd->prepare('SELECT ID_Utilisateur,Login FROM utilisateurs WHERE Email = ?');
         $mailexist->execute(array($recup_mail));
         $mailexist_count = $mailexist->rowCount();
         if($mailexist_count == 1) {
           $Login = $mailexist->fetch();
           $Login = $Login['Login'];  
             
         
            $_SESSION['recup_mail'] = $recup_mail;
            $recup_code = "";
            for($i=0; $i < 8; $i++) { 
               $recup_code .= mt_rand(0,9);
            }
            
            
            $mail_recup_exist = $bdd->prepare('SELECT id FROM recuperation WHERE mail = ?');
            $mail_recup_exist->execute(array($recup_mail));
            $mail_recup_exist = $mail_recup_exist->rowCount();
            if($mail_recup_exist == 1) {
               $recup_insert = $bdd->prepare('UPDATE recuperation SET code = ? WHERE mail = ?');
               $recup_insert->execute(array($recup_code,$recup_mail));
            }else{
            
            $recup_insert = $bdd->prepare('INSERT INTO recuperation(mail,code) VALUES (?, ?)');
            $recup_insert->execute(array($recup_mail,$recup_code));
            }
            $header="MIME-Version: 1.0\r\n";
         $header.='From:"PANZER!!!"<nicolas.lenoir52@sfr.fr>'."\n";
         $header.='Content-Type:text/html; charset="utf-8"'."\n";
         $header.='Content-Transfer-Encoding: 8bit';
         $message = '
         <html>
         <head>
           <title>Récupération de mot de passe - PANZER!!!</title>
           <meta charset="utf-8" />
         </head>
         <body>
           <font color="#303030";>
             <div align="center">
               <table width="600px">
                 <tr>
                   <td>
                     
                     <div align="center">Bonjour <b>'.$Login.'</b>,</div></br>
                         Voici votre code de vérification: <b>'.$recup_code.'</b></br></br>
                     
                     A bientôt sur <a href="http://127.0.0.1/Panzer/index/connexion.php">PANZER!!!</a> !
                     
                   </td>
                 </tr>
                 <tr>
                   <td align="center">
                     <font size="2">
                       Ceci est un email automatique, merci de ne pas y répondre
                     </font>
                   </td>
                 </tr>
               </table>
             </div>
           </font>
         </body>
         </html>
         ';
         mail($recup_mail, "Récupération de mot de passe - PANZER!!!", $message, $header);
         header("location:http://127.0.0.1/Panzer/motdepasse/recuperation.php?section=code");
            
            } else {
            $error = "Cette adresse mail n'est pas enregistrée";
         }
      } else {
         $error = "Adresse mail invalide";
      }
   } else {
      $error = "Veuillez entrer votre adresse mail";
   }
}

if(isset($_POST['verif_submit'],$_POST['verif_code'])) {
   if(!empty($_POST['verif_code'])) {
      $verif_code = htmlspecialchars($_POST['verif_code']);
      $verif_req = $bdd->prepare('SELECT id FROM recuperation WHERE mail = ? AND code = ?');
      $verif_req->execute(array($_SESSION['recup_mail'],$verif_code));
      $verif_req = $verif_req->rowCount();
      if($verif_req == 1) {
         $up_req = $bdd->prepare('UPDATE recuperation SET confirme = 1 WHERE mail = ?');
         $up_req->execute(array($_SESSION['recup_mail']));
         header('Location:http://127.0.0.1/Panzer/motdepasse/recuperation.php?section=changemdp');
      } else {
         $error = "Code invalide";
      }
   } else {
      $error = "Veuillez entrer votre code de confirmation";
   }
}
if(isset($_POST['change_submit'])) {
   if(isset($_POST['change_mdp'],$_POST['change_mdpc'])) {
      $verif_confirme = $bdd->prepare('SELECT confirme FROM recuperation WHERE mail = ?');
      $verif_confirme->execute(array($_SESSION['recup_mail']));
      $verif_confirme = $verif_confirme->fetch();
      $verif_confirme = $verif_confirme['confirme'];
      if($verif_confirme == 1) {
         $mdp = htmlspecialchars($_POST['change_mdp']);
         $mdpc = htmlspecialchars($_POST['change_mdpc']);
         if(!empty($mdp) AND !empty($mdpc)) {
            if($mdp == $mdpc) {
               $mdp = hash('sha256',$mdp);
               $ins_mdp = $bdd->prepare('UPDATE utilisateurs SET Password = ? WHERE Email = ?');
               $ins_mdp->execute(array($mdp,$_SESSION['recup_mail']));
              $del_req = $bdd->prepare('DELETE FROM recuperation WHERE mail = ?');
              $del_req->execute(array($_SESSION['recup_mail']));
               header('Location:http://127.0.0.1/Panzer/index/connexion.php/');
            } else {
               $error = "Vos mots de passes ne correspondent pas";
            }
         } else {
            $error = "Veuillez remplir tous les champs";
         }
      } else {
         $error = "Veuillez valider votre mail grâce au code de vérification qui vous a été envoyé par mail";
      }
   } else {
      $error = "Veuillez remplir tous les champs";
   }
}
?>

<!doctype html>
<html lang="fr">
<head>
    
<meta charset="UTF-8">
    
<title>Récupération de votre mot de passe</title>

<link href="../css/formulaire.css" rel="stylesheet" type="text/css" />

</head>

<body>
    
<h1 class="title-element">Récupération de mot de passe</h1>
<?php if($section == 'code') { ?>
Un code de vérification vous a été envoyé à cet Email: <?= $_SESSION['recup_mail'] ?>
<br/></br>
<form method="post">
    <input type="text" placeholder="Code de vérification" name="verif_code"/><br/></br>
   <input type="submit" value="Valider" name="verif_submit"/>
</form>
<?php } elseif($section == "changemdp") { ?>
Nouveau mot de passe pour <?= $_SESSION['recup_mail'] ?></br></br>
<form method="post">
    <input type="password" placeholder="Nouveau mot de passe" name="change_mdp"/><br/></br>
    <input type="password" placeholder="Confirmation du mot de passe" name="change_mdpc"/><br/></br>
   <input type="submit" value="Valider" name="change_submit"/>
</form>
<?php } else { ?>
<form method="post">
    <input type="email" placeholder="Votre adresse mail" name="recup_mail"/><br/></br>
   <input type="submit" value="Valider" name="recup_submit"/>
</form>
<?php } ?>
<?php if(isset($error)) { echo '<span style="color:red">'.$error.'</span>'; } else { echo ""; } ?>


</body>
</html>
panzer

panzer Le 18 mai 2017 à 06:59

bonjour!!    Excuser-moi pour la police en travers ,je suis en ce moment en train de passer un certificat webmestre (oui débutant ^^) mais la résolution de ce problème m'aiderais franchement (en ayant retourner le problème dans tous les sens),et aussi pour mon projet,je n'ai pas le droit aux framework (bien entendu ça serait trop facile ^^)...donc une âme charitable ne serait pas de trop,même si le mdp oublié n'est pas la priorité....enfin voila je suis quand même bloqué :(
Balatharas

Balatharas Le 18 mai 2017 à 18:00

Salut, crée ton topic en expliquant clairement ton pb
Infos
panzer

panzer Le 18 mai 2017 à 19:14

Bonjour .Le topic et le message d'erreur sont expliqués ci-dessus^^ (cf message du Le 17 Mai 2017 à 22:57).....c'était juste une relance en fait^^ Merci pour votre éventuelle aide.
panzer

panzer Le 23 mai 2017 à 20:05 (Édité le 23 mai 2017 à 20:28)

Bon aller j'ai trouver et TOUT fonctionne 😀 😀...je partage mon code...bien entendu ne pas oublier de créer la table recuperation(id,mail,code,confirme) et créer la table utilisateurs(ID_Utilisateur,Email,Login,Password)...attention à la case!!!....donc effacer complètement la table "membre" de Primfx(aussi pour les header,essayer d'utiliser une url relative exemple:
header('Location:../motdepasse/recuperation.php?section=code');
car sinon en http,ça à tendance à générer des erreurs....)

Voila "the" solution(enfin parmi tant d'autres^^):
<?php
require_once('../bdd/connectbdd.php');

// ou démarrer directement avec:
//session_start();

//$bdd = new PDO('mysql:host=127.0.0.1;dbname=nomdevotreBDD;charset=utf8', 'root', '');

if(isset($_GET['section'])) {

$section = htmlspecialchars($_GET['section']);

} else {

$section = "";

}

if(isset($_POST['recup_submit'],$_POST['recup_mail'])) {
   if(!empty($_POST['recup_mail'])) {
      $recup_mail = htmlspecialchars($_POST['recup_mail']);
      if(filter_var($recup_mail,FILTER_VALIDATE_EMAIL)) {
         $mailexist = $bdd->prepare('SELECT ID_Utilisateur,Login FROM utilisateurs WHERE Email = ?');
         $mailexist->execute(array($recup_mail));
         $mailexist_count = $mailexist->rowCount();
         if($mailexist_count == 1) {
            $pseudo = $mailexist->fetch();
            $pseudo = $pseudo['Login'];
            
            $_SESSION['recup_mail'] = $recup_mail;
            $recup_code = "";
            for($i=0; $i < 8; $i++) { 
               $recup_code .= mt_rand(0,9);
            }
            $mail_recup_exist = $bdd->prepare('SELECT id FROM recuperation WHERE mail = ?');
            $mail_recup_exist->execute(array($recup_mail));
            $mail_recup_exist = $mail_recup_exist->rowCount();
            if($mail_recup_exist == 1) {
               $recup_insert = $bdd->prepare('UPDATE recuperation SET code = ? WHERE mail = ?');
               $recup_insert->execute(array($recup_code,$recup_mail));
            } else {
               $recup_insert = $bdd->prepare('INSERT INTO recuperation(mail,code,confirme) VALUES (?, ?, "0")');
               $recup_insert->execute(array($recup_mail,$recup_code));
            }
            $header="MIME-Version: 1.0\r\n";
         $header.='From:"Panzer@panpan.com"<Panzer@panpan.com>'."\n";
         $header.='Content-Type:text/html; charset="utf-8"'."\n";
         $header.='Content-Transfer-Encoding: 8bit';
         $message = '
         <html>
         <head>
           <title>Récupération de mot de passe - PANZER!!</title>
           <meta charset="utf-8" />
         </head>
         <body>
           <font color="#303030";>
             <div align="center">
               <table width="600px">
                 <tr>
                   <td>
                     
                     <div align="center">Bonjour <b>'.$pseudo.'</b>,</div>
                     Voici votre code de récupération: <b>'.$recup_code.'</b>
                     A bientôt sur <a href="#">PANZER!!</a> !
                     
                   </td>
                 </tr>
                 <tr>
                   <td align="center">
                     <font size="2">
                       Ceci est un email automatique, merci de ne pas y répondre.
                     </font>
                   </td>
                 </tr>
               </table>
             </div>
           </font>
         </body>
         </html>
         ';
         mail($recup_mail, "Récupération de mot de passe - PANZER!!", $message, $header);
            header('Location:../motdepasse/recuperation.php?section=code');
         } else {
            $error = "Cette adresse mail n'est pas enregistrée";
         }
      } else {
         $error = "Adresse mail invalide";
      }
   } else {
      $error = "Veuillez entrer votre adresse mail";
   }
}
if(isset($_POST['verif_submit'],$_POST['verif_code'])) {
   if(!empty($_POST['verif_code'])) {
      $verif_code = htmlspecialchars($_POST['verif_code']);
      $verif_req = $bdd->prepare('SELECT id FROM recuperation WHERE mail = ? AND code = ?');
      $verif_req->execute(array($_SESSION['recup_mail'],$verif_code));
      $verif_req = $verif_req->rowCount();
      if($verif_req == 1) {
         $up_req = $bdd->prepare('UPDATE recuperation SET confirme = 1 WHERE mail = ?');
         $up_req->execute(array($_SESSION['recup_mail']));
         header('Location:../motdepasse/recuperation.php?section=changemdp');
      } else {
         $error = "Code invalide";
      }
   } else {
      $error = "Veuillez entrer votre code de confirmation";
   }
}
if(isset($_POST['change_submit'])) {
   if(isset($_POST['change_mdp'],$_POST['change_mdpc'])) {
      $verif_confirme = $bdd->prepare('SELECT confirme FROM recuperation WHERE mail = ?');
      $verif_confirme->execute(array($_SESSION['recup_mail']));
      $verif_confirme = $verif_confirme->fetch();
      $verif_confirme = $verif_confirme['confirme'];
      if($verif_confirme == 1) {
         $mdp = htmlspecialchars($_POST['change_mdp']);
         $mdpc = htmlspecialchars($_POST['change_mdpc']);
         if(!empty($mdp) AND !empty($mdpc)) {
            if($mdp == $mdpc) {
               $mdp = hash('sha256',$mdp);
               $ins_mdp = $bdd->prepare('UPDATE utilisateurs SET Password = ? WHERE Email = ?');
               $ins_mdp->execute(array($mdp,$_SESSION['recup_mail']));
              $del_req = $bdd->prepare('DELETE FROM recuperation WHERE mail = ?');
              $del_req->execute(array($_SESSION['recup_mail']));
               header('Location:../index/connexion.php');
            } else {
               $error = "Vos mots de passes ne correspondent pas";
            }
         } else {
            $error = "Veuillez remplir tous les champs";
         }
      } else {
         $error = "Veuillez valider votre mail grâce au code de vérification qui vous a été envoyé par mail";
      }
   } else {
      $error = "Veuillez remplir tous les champs";
   }
}
?>
<!-- Formulaires-->

<!doctype html>
<html lang="fr">
<head>
    
<meta charset="UTF-8">
    
<title>Récupération de votre mot de passe</title>

<link href="../css/formulaire.css" rel="stylesheet" type="text/css" />

</head>

<body>

<h4 class="title-element">Récupération de mot de passe</h4>
<?php if($section == 'code') { ?>
Un code de vérification vous a été envoyé par mail: <?= $_SESSION['recup_mail'] ?>
<br/><br/>
<form method="post">
   <input type="text" placeholder="Code de vérification" name="verif_code"/><br/><br/>
   <input type="submit" value="Valider" name="verif_submit"/>
</form>
<?php } elseif($section == "changemdp") { ?>
Nouveau mot de passe pour <?= $_SESSION['recup_mail'] ?>
<form method="post">
   <input type="password" placeholder="Nouveau mot de passe" name="change_mdp"/><br/><br/>
   <input type="password" placeholder="Confirmation du mot de passe" name="change_mdpc"/><br/><br/>
   <input type="submit" value="Valider" name="change_submit"/>
</form>
<?php } else { ?>
<form method="post">
   <input type="email" placeholder="Votre adresse mail" name="recup_mail"/><br/><br/>
   <input type="submit" value="Valider" name="recup_submit"/>
</form>
<?php } ?>
<?php if(isset($error)) { echo '<span style="color:red">'.$error.'</span>'; } else { echo ""; } ?>
</body>
</html>

A bientôt ^^
Dinars

Dinars Le 16 juillet 2017 à 16:03

merci pour votre code, il est fonctionnel!
panzer

panzer Le 17 juillet 2017 à 09:08

De rien ^^  Il est toujours péfèrable de donner sa solution plutôt que de dire "ça fonctionne pour moi !",sans donner la moindre aide,ce qui est le cas dans pas mal de forum et qui à tendance à m'exaspérer...donc je trouve une solution,je partage 😀 .  Bonne journée.
thiernosow

thiernosow Le 18 juillet 2017 à 17:26

eader.='Content-Type: text/html; charset="utf-8"'."\n";
$header.='Content-Transfert-Encoding: 8bits';
$message ='<html>
<body>
<div align="center">
j\'ai envoyer ce mail avec php.
</div>
</body>
</html>';
mail($mail, "salut tout le monde ! ", $message, $header);
$info = "le mail a bien ete envoye";
}
?>
thiernosow

thiernosow Le 18 juillet 2017 à 17:26

eader.='Content-Type: text/html; charset="utf-8"'."\n";
$header.='Content-Transfert-Encoding: 8bits';
$message ='<html>
<body>
<div align="center">
j\'ai envoyer ce mail avec php.
</div>
</body>
</html>';
mail($mail, "salut tout le monde ! ", $message, $header);
$info = "le mail a bien ete envoye";
}
?>
thiernosow

thiernosow Le 18 juillet 2017 à 18:14

<body>
   <?php require("include/titre.php"); ?>
         <div class="topic-tc"> 
            <span style="padding: 10px;">
               <?= $topic['sujet'] ?>   
            </span>
         </div><br>
      <table class="topic-bloc1">
      <?php if($pageCourante == 1) { ?>
      <tr>
         <td class="topic-td1">
         <a href="profil/<?= $topic['id_createur'] ?>" style="color: rgb(98,0,98); text-decoration: none;"> <?= get_pseudo($topic['id_createur']) ?></a><br><br>
          <?php 
                $ava = $bdd->prepare('SELECT * FROM membre WHERE pseudo = ? ');
                $ava->execute(array(get_pseudo($topic['id_createur'])));
                while($avav = $ava->fetch()) {
              if(!empty($avav['avatar'])) 
              { ?>
                  <img src="membre/avatar/<?= $avav['avatar'] ?>" class="t-image-createur" />
          <?php }
              else
              { ?>
                 <img src="photos/identifiant.jpg" class="t-image"  />
          <?php } } ?>
         </td>
         <td class="topic-td2">
            <span style="font-size: 18px;">
               <?= $topic['date_heure_creation'] ?>
            </span><hr><br>
            <?= $topic['contenu'] ?>
         </td>
      </tr>
      <?php } ?>
      </table>
<br>
<?php while($r = $reponses->fetch()) { ?>
   <table class="topic-bloc2">
      <tr>
         <td class="topic-b2td1">
         <a href="profil/<?= $r['id_posteur'] ?>" style="color: rgb(98,0,98); text-decoration: none;"> <?= get_pseudo($r['id_posteur']) ?></a><br><br>
      <?php
                $avareponse = $bdd->prepare('SELECT * FROM membre WHERE pseudo = ? ');
                $avareponse->execute(array(get_pseudo($r['id_posteur'])));
                while($avavposteur = $avareponse->fetch()) {
         if(!empty($avavposteur['avatar'])) 
              { ?>
                  <img src="membre/avatar/<?= $avavposteur['avatar'] ?>" class="t-image-posteur"/>
          <?php }
              else
              { ?>
                 <img src="photos/identifiant.jpg" class="t-image-posteur" />
          <?php } } ?>
            
         </td>
         <td class="topic-b2td2">
            <span style="font-size: 18px;">
               <?= $r['date_heure_post'] ?>
            </span><hr><br>
            <pre><code><?= $r['contenu'] ?></code></pre>
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte