Message d erreur ne s'inscrit pas dans la modal

Fermé
flexi2202 Messages postés 3800 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 16 mai 2024 - Modifié le 18 févr. 2022 à 17:28
flexi2202 Messages postés 3800 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 16 mai 2024 - 19 févr. 2022 à 17:10
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

<?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 22793 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 mai 2024 1 468
18 févr. 2022 à 17:29
bonjour,
as-tu pu déterminer si c'est un problème avec le test ou avec l'affichage?
0
flexi2202 Messages postés 3800 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 16 mai 2024 187
18 févr. 2022 à 17:32
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
0
yg_be Messages postés 22793 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 mai 2024 1 468
18 févr. 2022 à 17:45
es-tu certain d'avoir correctement partagé le contenu de trois pages avec à chaque fois le nom du fichier au-dessus?
0
flexi2202 Messages postés 3800 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 16 mai 2024 187
18 févr. 2022 à 17:46
je vérifie car j'ai recommencer au moins 15 fois
le site ne voulait pas prendre mon code
0
flexi2202 Messages postés 3800 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 16 mai 2024 187
18 févr. 2022 à 18:00
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>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
flexi2202 Messages postés 3800 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 16 mai 2024 187
19 févr. 2022 à 11:57
en fait je souhaiterais tout simplement que mes messages d erreurs utilisateur
puisse apparaître dans la pop up

car pour l instant ils sont bien affichées dans la page myModal.php mais de cette façon

0
yg_be Messages postés 22793 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 mai 2024 1 468
19 févr. 2022 à 12:22
Je suppose alors que le code html envoyé n'est pas correct.
L'as-tu examiné? As-tu déterminé ce qu'i fallait y changer?
0
flexi2202 Messages postés 3800 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 16 mai 2024 187
19 févr. 2022 à 12:24
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 ?
0
yg_be Messages postés 22793 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 mai 2024 1 468
19 févr. 2022 à 12:53
As-tu examiné le code HTML de la page?
https://support.google.com/surveys/answer/6172725?hl=fr
0
flexi2202 Messages postés 3800 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 16 mai 2024 187
19 févr. 2022 à 16:35
Voila je viens de corriger les erreurs
Mais le soucis est toujours présent
0
flexi2202 Messages postés 3800 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 16 mai 2024 187
19 févr. 2022 à 17:10
M modal devrait rester affichée et ne pas me rediriger vers la page de la modal ...
0