Message d erreur ne s'inscrit pas dans la modal
flexi2202
Messages postés
3640
Date d'inscription
Statut
Membre
Dernière intervention
-
flexi2202 Messages postés 3640 Date d'inscription Statut Membre Dernière intervention -
flexi2202 Messages postés 3640 Date d'inscription Statut Membre Dernière intervention -
bonjour a tous
je viens de découvrir une erreur de codage sur mon site
il y aune première condition qui se met en place lorsque un membre se connecte
je récupère son adresse mail dans la base de donnée
si elle existe je n affiche pas de pop up d'inscription a la newsletter
autrement une pop up s'ouvre avec son adresse email prédéfinie
Le code de cette pop up est dans un fichier mymondal.php
Donc imaginons que le membre n'est pas encore dans ma base de donnée donc la pop up s affiche
Le membre voit son email s afficher
il décide de vouloir s'inscrire avec une autre adresse mail et se trompe et par le plus grand des hasard
cette adresse email existe déjà ...
Il y a la page mymondal.php qui s'ouvre et afficher le message d erreur
et c'est la le problème
je souhaiterais que le message puisse s afficher dans la pop up
voici le code qui teste l adresse email dans al base de donnee
le traitement des erreurs traitement-neuw.php
le traitement des erreurs traitement-neuw.php
je viens de découvrir une erreur de codage sur mon site
il y aune première condition qui se met en place lorsque un membre se connecte
je récupère son adresse mail dans la base de donnée
si elle existe je n affiche pas de pop up d'inscription a la newsletter
autrement une pop up s'ouvre avec son adresse email prédéfinie
Le code de cette pop up est dans un fichier mymondal.php
Donc imaginons que le membre n'est pas encore dans ma base de donnée donc la pop up s affiche
Le membre voit son email s afficher
il décide de vouloir s'inscrire avec une autre adresse mail et se trompe et par le plus grand des hasard
cette adresse email existe déjà ...
Il y a la page mymondal.php qui s'ouvre et afficher le message d erreur
et c'est la le problème
je souhaiterais que le message puisse s afficher dans la pop up
voici le code qui teste l adresse email dans al base de donnee
le traitement des erreurs traitement-neuw.php
<?php
session_start();
?>
<?php
require_once 'base.php';
if (!empty($_POST['email']))
{
$email = htmlspecialchars($_POST['email']);
$check = $bdd->prepare('SELECT email FROM neuw WHERE email = ?');
$check->execute(array(
$email
));
$data = $check->fetch();
$row = $check->rowCount();
if ($row == 0)
{
if (strlen($email) <= 100)
{
if (filter_var($email, FILTER_VALIDATE_EMAIL))
{
$cost = ['cost' => 12];
$ip = $_SERVER['REMOTE_ADDR'];
$insert = $bdd->prepare('INSERT INTO neuw( email) VALUES(:email)');
$insert->execute(array(
'email' => $email,
));
//traitement de l envois par mail
setlocale (LC_TIME, 'fr_FR.utf8','fra');
date_default_timezone_set('Europe/Brussels');
$date1 = date('d-m-Y H:i:s'); // Date du jour
// on entre un ou Plusieurs destinataires
$to = 'perroquet666@hotmail.com'; // notez la virgule
// Sujet
$subject= "NOUVEL ABONNE NEUWSLLETER ";
// message
$message =
'
<html>
<head>
<title>un nouveau membre vient de s inscrire </title>
</head>
<body>
<table>
<tr>
<td>son pseudo est </td><td>'.$email .'</td></br>
</tr>
<tr>
<td>date</td><td>'.$date1 .'</td></br>
</tr>
</table>
</body>
</html> ';
// Pour envoyer un mail HTML, l'en-tête Content-type doit être défini
$headers[] = 'MIME-Version: 1.0';
$headers[] = 'content-type: text/html; charset=utf-8';
// En-têtes additionnels
//$headers[] = "From: " . $name . "<". $_POST["email"] .">\r\n";
$headers[] = 'From: '.$email."\r\n".
'Reply-To: '.$name."\r\n" .
'X-Mailer: PHP/' . phpversion();
// Envoi
//var_dump($headers);
if(mail($to, $subject, $message, implode("\r\n", $headers))){
// success message
//echo "Success!<br />";
}else{
// error message
//echo "Fail<br />";
}
header('Location:redirection-inscription-neuw.php?reg_err=success');
die();
}
else
{
header('Location: myModal.php?reg_err=email');
die();
}
}
else
{
header('Location: myModal.php?reg_err=email_length');
die();
}
}
else
{
header('Location: myModal.php?reg_err=already');
die();
}
}
<body>
<!-- Bootstrap Modal -->
<div class="modal fade" id="myModal" role="dialog">
<div class="modal-dialog">
<!-- Modal content -->
<div class="modal-content">
<!-- Modal header -->
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title text-primary">Inscription newsletter pêche perle</h4>
</div>
<!-- Modal body -->
<div class="modal-body">
<!-- debut cinquieme cadre-->
<div class="card-defaut text-center" style="height:100%; ">
<div class="card-block">
<div class="card h-100">
<div class="login-form">
<!-- gestion erreurs-->
<?php
if(isset($_GET['reg_err'])) {
$err = htmlspecialchars($_GET['reg_err']);
switch($err) {
case 'success':
?>
<div class="alert alert-success">
<strong>Succès</strong> inscription réussie !
<strong>
<a href="connexion-site.php" target="_blank">A présent connectes toi ici</a>
</strong>
</div>
<?php
break;
case 'email':
?>
<div class="alert alert-danger">
<strong>Erreur</strong> Email non valide
</div>
<?php
break;
case 'email_length':
?>
<div class="alert alert-danger">
<strong>Erreur</strong> Email trop long
</div>
<?php
break;
case 'pseudo_length':
?>
<div class="alert alert-danger">
<strong>Erreur</strong> Compte déjà existant
</div>
<?php
}
}
?>
<!-- on affiche le formulaire-->
<div class="container">
<form action="traitement-neuw.php" method="post">
<div class="row">
<div class="col-sm">
<p class="card-text" style ="font-size: 20px;text-align:center;margin-bottom:10px;" >
Bonjour
</p>
</div>
</div>
<div class="row">
<div class="col-sm">
<input type="email" name="email" class="form-control" placeholder="Email" value="<?php echo $_SESSION['email'];?>" autocomplete="off" style="text-align:center;margin-bottom:10px;">
</div>
</div>
<div class="row">
<div class="col-sm">
<p class="card-text" style ="font-size: 20px;text-align:center;margin-bottom:10px;" >
Abonne-toi pour ne rater aucun nouvel évènement
</p>
</div>
</div>
<div class="row">
<div class="col-sm">
<button type="submit" class="button" style= "font-size: 40px;text-align:center;" >Inscription</button>
</div>
</div>
</form>
<div class="row">
<div class="col-sm">
<div class="modal-footer">
<button type="button" class="bg-primary text-white btn-sm " data-dismiss="modal"> Close </button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- fin cinquieme cadre-->
<!-- Modal footer -->
</div>
<!-- // .modal-content -->
</div>
<!-- // .modal-dialog -->
</div>
<!-- // #myModal -->
<script>
// ouverture de la modal
jQuery(document).ready(function(){
$("#myModal").modal();
});
</script>
<script>
// ouverture de la modal
jQuery(document).ready(function(){
$("#myModal").modal();
});
</script>
le traitement des erreurs traitement-neuw.php
<?php
session_start();
?>
<?php
require_once 'base.php';
if (!empty($_POST['email']))
{
$email = htmlspecialchars($_POST['email']);
$check = $bdd->prepare('SELECT email FROM neuw WHERE email = ?');
$check->execute(array(
$email
));
$data = $check->fetch();
$row = $check->rowCount();
if ($row == 0)
{
if (strlen($email) <= 100)
{
if (filter_var($email, FILTER_VALIDATE_EMAIL))
{
$cost = ['cost' => 12];
$ip = $_SERVER['REMOTE_ADDR'];
$insert = $bdd->prepare('INSERT INTO neuw( email) VALUES(:email)');
$insert->execute(array(
'email' => $email,
));
//traitement de l envois par mail
setlocale (LC_TIME, 'fr_FR.utf8','fra');
date_default_timezone_set('Europe/Brussels');
$date1 = date('d-m-Y H:i:s'); // Date du jour
// on entre un ou Plusieurs destinataires
$to = 'perroquet666@hotmail.com'; // notez la virgule
// Sujet
$subject= "NOUVEL ABONNE NEUWSLLETER ";
// message
$message =
'
<html>
<head>
<title>un nouveau membre vient de s inscrire </title>
</head>
<body>
<table>
<tr>
<td>son pseudo est </td><td>'.$email .'</td></br>
</tr>
<tr>
<td>date</td><td>'.$date1 .'</td></br>
</tr>
</table>
</body>
</html> ';
// Pour envoyer un mail HTML, l'en-tête Content-type doit être défini
$headers[] = 'MIME-Version: 1.0';
$headers[] = 'content-type: text/html; charset=utf-8';
// En-têtes additionnels
//$headers[] = "From: " . $name . "<". $_POST["email"] .">\r\n";
$headers[] = 'From: '.$email."\r\n".
'Reply-To: '.$name."\r\n" .
'X-Mailer: PHP/' . phpversion();
// Envoi
//var_dump($headers);
if(mail($to, $subject, $message, implode("\r\n", $headers))){
// success message
//echo "Success!<br />";
}else{
// error message
//echo "Fail<br />";
}
header('Location:redirection-inscription-neuw.php?reg_err=success');
die();
}
else
{
header('Location: myModal.php?reg_err=email');
die();
}
}
else
{
header('Location: myModal.php?reg_err=email_length');
die();
}
}
else
{
header('Location: myModal.php?reg_err=already');
die();
}
}
9 réponses
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour,
as-tu pu déterminer si c'est un problème avec le test ou avec l'affichage? -
bonjour
Merci pour la reponse
En fait mon message d erreur s affiche bien mais dans la page myModal.php
et non pas dans la boite de dialogue -
je vérifie car j'ai recommencer au moins 15 fois
le site ne voulait pas prendre mon code -
je ne sais plus modifier mon message je remets mes codes
en fait tout fonctionne bien sauf que mes messages d erreurs ne s'affichent pas dans la modal mais dans la page myModal.php
qui est la modal qui doit s 'afficher sur ma page d accueil
voici le code qui teste l adresse email dans la base de donnée
afin d afficher ou pas la modal
si l adresse email existe on affiche pas la modal
si l adresse mail existe on affiche la modal
<!-- teste si une variable existe ou non qui a ete definie dans la page de connexion de cette facon on lance ou pas la neuwsletter si elle est vide on n affcihe pas la neuwsletter--> <?php if (isset($_SESSION['user'])) { ?> <?php // Include pour la connexion à la bdd require_once 'base.php'; //récupération PROPRE des variables AVANT de les utiliser $email = !empty($_SESSION['email']) ? $_SESSION['email'] : NULL; //préparation de la requête et des variables oiur regarder si l adresse email est presente ou pas $sql = "SELECT * FROM neuw WHERE email=?"; $datas = [$email]; //exécution de la requête try{ $stmt = $bdd->prepare($sql); $stmt->execute($datas); $user = $stmt->fetch(); }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } if (!empty($user)) { echo "email existe "; } else { if(empty($_SESSION['story'])) { //je regarde si la session global stry est vide ou pas $_SESSION['story'] = TRUE; require_once "myModal"; } } } else { } ?>`
Le code de myModal.php<body> <!-- Bootstrap Modal --> <div class="modal fade" id="myModal" role="dialog"> <div class="modal-dialog"> <!-- Modal content --> <div class="modal-content"> <!-- Modal header --> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal">×</button> <h4 class="modal-title text-primary">Inscription newsletter pêche perle</h4> </div> <!-- Modal body --> <div class="modal-body"> <!-- debut cinquieme cadre--> <div class="card-defaut text-center" style="height:100%; "> <div class="card-block"> <div class="card h-100"> <div class="login-form"> <!-- gestion erreurs--> <?php if(isset($_GET['reg_err'])) { $err = htmlspecialchars($_GET['reg_err']); switch($err) { case 'success': ?> <div class="alert alert-success"> <strong>Succès</strong> inscription réussie ! <strong> <a href="connexion-site.php" target="_blank">A présent connectes toi ici</a> </strong> </div> <?php break; case 'email': ?> <div class="alert alert-danger"> <strong>Erreur</strong> Email non valide </div> <?php break; case 'email_length': ?> <div class="alert alert-danger"> <strong>Erreur</strong> Email trop long </div> <?php break; case 'pseudo_length': ?> <div class="alert alert-danger"> <strong>Erreur</strong> Compte déjà existant </div> <?php } } ?> <!-- on affiche le formulaire--> <div class="container"> <form action="traitement-neuw.php" method="post"> <div class="row"> <div class="col-sm"> <p class="card-text" style ="font-size: 20px;text-align:center;margin-bottom:10px;" > Bonjour </p> </div> </div> <div class="row"> <div class="col-sm"> <input type="email" name="email" class="form-control" placeholder="Email" value="<?php echo $_SESSION['email'];?>" autocomplete="off" style="text-align:center;margin-bottom:10px;"> </div> </div> <div class="row"> <div class="col-sm"> <p class="card-text" style ="font-size: 20px;text-align:center;margin-bottom:10px;" > Abonne-toi pour ne rater aucun nouvel évènement </p> </div> </div> <div class="row"> <div class="col-sm"> <button type="submit" class="button" style= "font-size: 40px;text-align:center;" >Inscription</button> </div> </div> </form> <div class="row"> <div class="col-sm"> <div class="modal-footer"> <button type="button" class="bg-primary text-white btn-sm " data-dismiss="modal"> Close </button> </div> </div> </div> </div> </div> </div> </div> </div> </div> <!-- fin cinquieme cadre--> <!-- Modal footer --> </div> <!-- // .modal-content --> </div> <!-- // .modal-dialog --> </div> <!-- // #myModal --> <script> // ouverture de la modal jQuery(document).ready(function(){ $("#myModal").modal(); }); </script> <script> // ouverture de la modal jQuery(document).ready(function(){ $("#myModal").modal(); }); </script>
le traitement des erreurs
traitement-neuw.php<code php><?php session_start(); ?> <?php require_once 'base.php'; if (!empty($_POST['email'])) { $email = htmlspecialchars($_POST['email']); $check = $bdd->prepare('SELECT email FROM neuw WHERE email = ?'); $check->execute(array( $email )); $data = $check->fetch(); $row = $check->rowCount(); if ($row == 0) { if (strlen($email) <= 100) { if (filter_var($email, FILTER_VALIDATE_EMAIL)) { $cost = ['cost' => 12]; $ip = $_SERVER['REMOTE_ADDR']; $insert = $bdd->prepare('INSERT INTO neuw( email) VALUES(:email)'); $insert->execute(array( 'email' => $email, )); //traitement de l envois par mail setlocale (LC_TIME, 'fr_FR.utf8','fra'); date_default_timezone_set('Europe/Brussels'); $date1 = date('d-m-Y H:i:s'); // Date du jour // on entre un ou Plusieurs destinataires $to = 'perroquet666@hotmail.com'; // notez la virgule // Sujet $subject= "NOUVEL ABONNE NEUWSLLETER "; // message $message = ' <html> <head> <title>un nouveau membre vient de s inscrire </title> </head> <body> <table> <tr> <td>son pseudo est </td><td>'.$email .'</td></br> </tr> <tr> <td>date</td><td>'.$date1 .'</td></br> </tr> </table> </body> </html> '; // Pour envoyer un mail HTML, l'en-tête Content-type doit être défini $headers[] = 'MIME-Version: 1.0'; $headers[] = 'content-type: text/html; charset=utf-8'; // En-têtes additionnels //$headers[] = "From: " . $name . "<". $_POST["email"] .">\r\n"; $headers[] = 'From: '.$email."\r\n". 'Reply-To: '.$name."\r\n" . 'X-Mailer: PHP/' . phpversion(); // Envoi //var_dump($headers); if(mail($to, $subject, $message, implode("\r\n", $headers))){ // success message //echo "Success!<br />"; }else{ // error message //echo "Fail<br />"; } header('Location:redirection-inscription-neuw.php?reg_err=success'); die(); } else { header('Location: myModal.php?reg_err=email'); die(); } } else { header('Location: myModal.php?reg_err=email_length'); die(); } } else { header('Location: myModal.php?reg_err=already'); die(); } }
</code> -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
-
bonjour
merci pour la réponse
le code html ne me sers que pour appeler la pop up si l utilisateur n'est pas encore dans la base de donnée des newsletters ...
que pourrais je bien y changer ? -
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
As-tu examiné le code HTML de la page?
https://support.google.com/surveys/answer/6172725?hl=fr -
Voila je viens de corriger les erreurs
Mais le soucis est toujours présent -
M modal devrait rester affichée et ne pas me rediriger vers la page de la modal ...
