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   -
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

  1. 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?
    0
  2. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    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
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      es-tu certain d'avoir correctement partagé le contenu de trois pages avec à chaque fois le nom du fichier au-dessus?
      0
  3. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    je vérifie car j'ai recommencer au moins 15 fois
    le site ne voulait pas prendre mon code
    0
  4. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    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
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      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
  7. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    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
  8. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    Voila je viens de corriger les erreurs
    Mais le soucis est toujours présent
    0
  9. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    M modal devrait rester affichée et ne pas me rediriger vers la page de la modal ...
    0