Partage
  • Partager sur Facebook
  • Partager sur Twitter

Message de confirmation de formulaire

Sujet résolu
    4 juillet 2020 à 18:26:06

    Bonjour à tous,

    Depuis ce midi j'essaie de faire apparaître un message de confirmation (ou d'erreur) lors de l'envoi d'un formulaire en jouant avec les variables d'URL.

    Pour cela, dans mon fichier de traitement du formulaire j'ai ajouté :

    if ($CR_Mail === FALSE){
    
        	header("Location: index.php?status=erreur#contact");
    
        }
    
    else{
    
    	header("Location: index.php?status=envoi#contact");
    
        };


    Et dans mon code HTML j'ai :

                          <?php if (isset($_GET['status']) == 'erreur'): ?>
                            <div class="row" style="text-align: center;">
                              <div class="col">
                                <span style="text-align: center; color:red;">Il y a eu une erreur lors de l'envoi du message.<br> Merci de réessayer.</span>
                              </div>
                            </div>
                          <?php elseif (isset($_GET['status']) == 'envoi'): ?>
                            <div class="row" style="text-align: center;">
                              <div class="col">
                                <span style="text-align: center; color:green;">Le message a bien été envoyé, merci !</span>
                              </div>
                            </div>
                          <?php else: ?>
                          <?php endif; ?>


    Je fais des tests en modifiant manuellement les variables dans les URL et

    • quand il n'y a pas de variable, rien ne s'affiche = OK
    • quand status=erreur, j'ai bien mon message d'erreur = OK
    • quand status=envoi, j'ai quand même mon message d'erreur qui s'affiche = PAS OK

    Pouvez-vous m'indiquer pourquoi ?

    Merci beaucoup à vous

    ----- EDIT ------

    C'est bon, j'ai trouvé une solution.

    En recherchant la présence de mes paramètres dans l'url avec strpos, cela fonctionne :

    <?php if (strpos($_SERVER['REQUEST_URI'], 'erreur') !== false): ?>
                            <div class="row" style="text-align: center;">
                              <div class="col">
                                <span style="text-align: center; color:red;">Il y a eu une erreur lors de l'envoi du message.<br> Merci de réessayer.</span>
                              </div>
                            </div>
    <?php elseif (strpos($_SERVER['REQUEST_URI'], 'envoi') !== false): ?>
                            <div class="row" style="text-align: center;">
                              <div class="col">
                                <span style="text-align: center; color:green;">Le message a bien été envoyé, merci !</span>
                              </div>
                            </div>
     <?php else: ?>
    <?php endif; ?>

    -
    Edité par MaximeLlobet 4 juillet 2020 à 18:50:04

    • Partager sur Facebook
    • Partager sur Twitter
      4 juillet 2020 à 18:27:00

      isset renvoie un booléen, pas une chaîne ...

      Et une chaîne qui n'est ni vide ni '0' est une valeur vraie.

      En clair tes isset($_GET['status']) == 'erreur' sont faux, ce serait isset($_GET['status']) && $_GET['status'] == 'erreur' (même idée pour l'autre).

      Voir éventuellement tester une fois pour toute le cas isset($_GET['status']) dans un if qui engloberait le reste, ce qui permettrait de les supprimer de tes if/else if actuels.

      PS : si le else est vide (pas la moindre instruction), il en est inutile

      -
      Edité par julp 4 juillet 2020 à 18:42:46

      • Partager sur Facebook
      • Partager sur Twitter
        4 juillet 2020 à 18:40:19

        julp a écrit:

        isset renvoie un booléen, pas une chaîne ...

        Et une chaîne qui n'est ni vide ni '0' est une valeur vraie.

        -
        Edité par julp il y a moins de 30s


        Merci de l'info !

        Mais du coup, je fais comment pour avoir mes 3 possibilités différentes ?

        • Partager sur Facebook
        • Partager sur Twitter

        Message de confirmation de formulaire

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown