Undefined index: recup_mail in....on line 101 & 158 [Résolu/Fermé]

Signaler
Messages postés
13
Date d'inscription
lundi 25 avril 2016
Statut
Membre
Dernière intervention
10 mai 2016
-
Messages postés
810
Date d'inscription
jeudi 21 février 2013
Statut
Membre
Dernière intervention
18 août 2016
-
Salut les gars
est ce que quelqu'un peux m'expliquer pourquoi cette erreur est apparue ? car , bizarre tout allait à merveille au début ><

voila le code :

<?php
require 'inc/bootstrap.php';
Session::getInstance();

$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);

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/index.php">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="widget col-lg-12 col-md-12 col-sm-12 col-xs-12 col-sp-12" >

<div class="block products_block exclusive leomanagerwidgets" align="center">
<div class="form-group" align="center">
<h4>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'] ?>
<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" class="form-control"name="recup_mail"/><br/>
<input type="submit" value="Valider" name="recup_submit" class="btn btn-primary"/>
</form></div> </div></div>

<?php } ?>


<?php require 'inc/footer.php'; ?>



Que dois je faire pour régler ça ? Des conseils ? ^^
je vous remercie d'avance !

1 réponse

Messages postés
810
Date d'inscription
jeudi 21 février 2013
Statut
Membre
Dernière intervention
18 août 2016
780
Bonjour, ça veut tout simplement dire que ta variable $_SESSION['recup_mail'] n'existe pas.
Est-ce qu'il y a un session_start(); dans ton require 'inc/bootstrap.php'; ?
La variable est-elle bien déclarée ? (sur une autre page par exemple)
Messages postés
810
Date d'inscription
jeudi 21 février 2013
Statut
Membre
Dernière intervention
18 août 2016
780
En regardant un peu plus le code je vois que tu mélanges http://localhost/ et http://127.0.0.1/
Attention, il y a deux cookie différent pour ces deux adresses, si tu déclares une variable de session sur http://localhost/page1.php tu ne pourras pas l'afficher sur http://127.0.0.1/page2.php
Le problème vient peut-être de ça
Messages postés
13
Date d'inscription
lundi 25 avril 2016
Statut
Membre
Dernière intervention
10 mai 2016

tu sais ? t'es un hero , quelle idiote j'étais omg , c'etais a cause de 127.0.0.1 et localhost , je croyais que c'etait pareil ><
MERCI MERCI 1000 MERCI !!!
Messages postés
810
Date d'inscription
jeudi 21 février 2013
Statut
Membre
Dernière intervention
18 août 2016
780
De rien ;)
J'ai déjà eu ce problème une fois aussi.
Si tu veux éviter ce genre de problème à l'avenir, mets des liens relatifs plutôt que des liens absolus