Bonsoir tout le monde,

J'ai suivi l'excellent tutoriel proposé par Grafikart sur la réalisation d'un formulaire avec vérification en PHP et en jQuery.
J'ai revue le tutoriel à plusieurs reprises en apportant une double attention au code écrit mais je ne parviens pas à trouver la cause des dysfonctionnements.

Au moment de l'envoi du formulaire, j'ai ce message d'erreur qui semble indiqué que la variable "adresse" n'est pas initialisé :

Même si je supprime le champs caché pour flouter un robot, l’émail n'est pas envoyé, le message notifiant que l'émail à bien été reçu ne s'affiche pas au dessus du formulaire et je ne reçois rien dans ma boite mail spam compris.

Voici le code PHP

<?php 
   if(!empty ($_POST)){
       extract($_POST);
       $valid = true;
       if($adresse != ""){

       }
       else{
       if(empty($nom)){
           $valid=false;
           $erreurnom="Vous n'avez pas rempli votre nom et prénom !";
       }
       if(empty($prenom)){
           $valid=false;
           $erreurprenom="Vous n'avez pas rempli votre prénom !";
       }
       if(!preg_match("/^[a-z0-9\-_.]+@[a-z0-9\-_.]+\.[a-z]{2,3}$/i",$email)){
           $valid=false;
           $erreuremail = "Votre email n'est pas valide !";
       }
       if(empty($email)){
           $valid=false;
           $erreuremail="Vous n'avez pas rempli votre email !";
       }
       if(empty($message)){
           $valid=false;
           $erreurmessage="Vous n'avez pas rempli votre message !";
       }
       if($valid){
           $to = "adelkamel@hotmail.fr";
           $sujet = "Un message en provenance du portfolio";
           $header = "From: adelkamel@hotmail.fr \n";
           $header = "Reply-To: $email";
           $message = stripslashes($message);
           $nom = stripslashes($nom);
           if(mail($to,$sujet,$message,$header)){
               $erreur ="Votre message nous ai bien parvenu";
               unset($nom);
               unset($prenom);
               unset($email);
               unset($message);
           }
           else{
               $erreur ="Une erreur est survenue";
           }
       }
       }
   }
?>

Le code jQuery:

<script type="text/javascript">
            $(document).ready(function() {
                $("#adresse").hide();
                $("#envoyer").click(function(){
                    valid=true;
                    if($("#nom").val()==""){
                        $("#nom").css("background-color","#fe9898");
                        $("#nom").next(".error-message").text("Vous n'avez pas rempli votre nom et prénom !");
                        valid=false;
                    }
                    else{
                        $("#nom").css("background-color","#c2ffc2");
                        $("#nom").next(".error-message").text("");
                    }

                    if($("#email").val()==""){
                        $("#email").css("background-color","#fe9898");
                        $("#email").next(".error-message").text("Veuillez entrer votre email !");
                        valid=false;
                    }
                    else{
                        if(!$("#email").val().match(/^[a-z0-9\-_.]+@[a-z0-9\-_.]+\.[a-z]{2,3}$/i)){
                            $("#email").css("background-color","#fe9898");
                            $("#email").next(".error-message").text("Veuillez entrer un email valide !");
                            valid=false;
                        }
                        else{
                            $("#email").css("background-color","#c2ffc2");
                            $("#email").next(".error-message").text("");
                        }   
                    }
                    if($("#message").val()==""){
                        $("#message").css("background-color","#fe9898");
                        $("#message").next(".error-message").text("Veuillez entrer un message !");
                        valid=false;
                    }
                    else{
                        $("#message").css("background-color","#c2ffc2");
                        $("#message").next(".error-message").text("");
                    }
                    return valid;
                });
            });
        </script>

et enfin le code de mon formulaire :

<form action="contact.php" method="post" id="formulaire_contact" enctype="application/x-www-form-urlencoded">
        <?php if(isset($erreur)){ echo "<p>$erreur</p>";} ?>
        <fieldset>
                <div class="etiquette"><!-- NOM -->
                    <label for="nom"><img src="img/contact/nom.png" alt="Nom et Prénom" title="Nom et Prénom"/></label>
                    <input type="text" class="icon_nom" id="nom" name="nom" value="<?php if(isset($nom)) echo $nom; ?>" tabindex="1"/>
                    <span class="error-message"><?php if(isset ($erreurnom)) echo $erreurnom; ?></span>
                </div>
                <input id="adresse" type="text"/>
                <div class="etiquette"><!-- EMAIL -->
                    <label for="email"><img src="img/contact/email.png" alt="Email" title="Email"/></label>
                    <input type="text" class="icon_email" id="email" name="email" value="<?php if(isset($email)) echo $email; ?>" tabindex="3"/>
                    <span class="error-message"><?php if(isset ($erreuremail)) echo $erreuremail; ?></span>
                </div>
                <div class="etiquette">
                    <label for="message"><img src="img/contact/message.png" alt="Message" title="Message"/></label>
                    <textarea class="icon_msg" cols="30" rows="30" name="message" id="message" value="<?php if(isset ($message)) echo $message; ?>" tabindex="5"></textarea>
                    <span class="error-message"><?php if(isset ($erreurmessage)) echo $erreurmessage; ?></span>
                </div>
                <input class="envoyer" id="envoyer" name="envoyer" value="" type="image" />
        </fieldset>
    </form>

J'espère que vous pourrez me venir en aide.

Cordialement,

Adel

5 réponses


Adel
Auteur
Réponse acceptée

J'ai trouvé la solution :), merci quand même

Hello, c'est parce qu'il manque l'attribut name="adresse" dans l'input#adresse

Adel
Auteur

Bonsoir PhiSyX

Bien vue, c'était bien cela qui causé l'erreur PHP par contre, je ne reçois pas le contenu du formulaire sur mon Émail et l'écho

<?php if(isset($erreur)){ echo "<p>$erreur</p>";} ?>

ne s'affiche toujours pas.

Essaye ceci :

<?php if(isset($erreur)){ echo "<p>".$erreur."</p>";} ?>
Adel
Auteur

ça ne marche toujours pas