Créer un compte
Connexion

Problème formulaire de contact

Pour créer et répondre aux sujets, vous devez être connecté.
Ce sujet est résolu.
Pages: 1
Auteur Message
Ad00500
11/08/2009 à 12:29:02
"Fc Barcelona, Més que Un Club" Ad00500
Membre
Bonjour, j'ai un probleme avec mon formulaire de contact.
J'ai essayé de faire un test pour voir si le formulaire marchait, et il marche bien.
Mais quand je clique sur "Envoyer le formulaire", rien ne se passe.
Que faire ? <?php
        /*
                ********************************************************************************************
                CONFIGURATION
                ********************************************************************************************
        */
        // destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
        $destinataire = 'needforspeed62118@hotmail.fr';

        // copie ? (envoie une copie au visiteur)
        $copie = 'oui';

        // Action du formulaire (si votre page a des paramètres dans l'URL)
        // si cette page est index.php?page=contact alors mettez index.php?page=contact
        // sinon, laissez vide
        $form_action = '';

        // Messages de confirmation du mail
        $message_envoye = "Votre message nous est bien parvenu !";
        $message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";

        // Message d'erreur du formulaire
        $message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";

        /*
                ********************************************************************************************
                FIN DE LA CONFIGURATION
                ********************************************************************************************
        */

        /*
         * cette fonction sert à nettoyer et enregistrer un texte
         */
        function Rec($text)
        {
                $text = trim($text); // delete white spaces after & before text
                if (1 === get_magic_quotes_gpc())
                {
                        $stripslashes = create_function('$txt', 'return stripslashes($txt);');
                }
                else
                {
                        $stripslashes = create_function('$txt', 'return $txt;');
                }

                // magic quotes ?
                $text = $stripslashes($text);
                $text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
                $text = nl2br($text);
                return $text;
        };

        /*
         * Cette fonction sert à vérifier la syntaxe d'un email
         */
        function IsEmail($email)
        {
                $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
                return (eregi($pattern,$email)) ? true : false;
        };

        $err_formulaire = false; // sert pour remplir le formulaire en cas d'erreur si besoin

        // si formulaire envoyé, on récupère tous les champs. Sinon, on initialise les variables.
        $nom     = (isset($_POST['nom']))     ? Rec($_POST['nom'])     : '';
        $email   = (isset($_POST['email']))   ? Rec($_POST['email'])   : '';
        $objet   = (isset($_POST['objet']))   ? Rec($_POST['objet'])   : '';
        $message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';

        if (isset($_POST['envoi']))
        {
                // On va vérifier les variables et l'email ...
                $email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
                $err_formulaire = (IsEmail($email)) ? false : true;

                if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))
                {
                        // les 4 variables sont remplies, on génère puis envoie le mail
                        $headers = 'From: '.$nom.' <'.$email.'>' . "\r\n";

                        // envoyer une copie au visiteur ?
                        if ($copie == 'oui')
                        {
                                $cible = $destinataire.','.$email;
                        }
                        else
                        {
                                $cible = $destinataire;
                        };

                        // Remplacement de certains caractères spéciaux
                        $message = html_entity_decode($message);
                        $message = str_replace('&#039;',"'",$message);
                        $message = str_replace('&#8217;',"'",$message);
                        $message = str_replace('<br>','',$message);
                        $message = str_replace('<br />','',$message);

                        // Envoi du mail
                        if (mail($cible, $objet, $message, $headers))
                        {
                                echo '<p>'.$message_envoye.'</p>'."\n";
                        }
                        else
                        {
                                echo '<p>'.$message_non_envoye.'</p>'."\n";
                        };
                }
                else
                {
                        // une des 3 variables (ou plus) est vide ...
                        echo '<p>'.$message_formulaire_invalide.' <a href="contact.php">Retour au formulaire</a></p>'."\n";
                        $err_formulaire = true;
                };
        }; // fin du if (!isset($_POST['envoi']))

        if (($err_formulaire) || (!isset($_POST['envoi'])))
        {
                // afficher le formulaire
                echo '<form id="contact" method="post" action="'.$form_action.'">'."\n";
                echo '  <fieldset><legend>Vos coordonnées</legend>'."\n";
                echo '          <p>'."\n";
                echo '                  <label for="nom">Nom :</label>'."\n";
                echo '                  <input type="text" id="nom" name="nom" value="'.stripslashes($nom).'" tabindex="1" />'."\n";
                echo '          </p>'."\n";
                echo '          <p>'."\n";
                echo '                  <label for="email">Email :</label>'."\n";
                echo '                  <input type="text" id="email" name="email" value="'.stripslashes($email).'" tabindex="2" />'."\n";
                echo '          </p>'."\n";
                echo '  </fieldset>'."\n";

                echo '  <fieldset><legend>Votre message :</legend>'."\n";
                echo '          <p>'."\n";
                echo '                  <label for="objet">Objet :</label>'."\n";
                echo '                  <input type="text" id="objet" name="objet" value="'.stripslashes($objet).'" tabindex="3" />'."\n";
                echo '          </p>'."\n";
                echo '          <p>'."\n";
                echo '                  <label for="message">Message :</label>'."\n";
                echo '                  <textarea id="message" name="message" tabindex="4" cols="30" rows="8">'.stripslashes($message).'</textarea>'."\n";
                echo '          </p>'."\n";
                echo '  </fieldset>'."\n";

                echo '  <div style="text-align:center;"><input type="submit" name="envoi" value="Envoyer le formulaire !" /></div>'."\n";
                echo '</form>'."\n";
        };
?>

Merci d'avance de votre réponse.

ybouane
12-08-2009 à 16:47:11
ybouane
Admin
bonjour :),
premièrement que veut tu dire par rien ne se passe.
sinon, j'ai essayer ton formulaire et il fonctionne très bien(d'ailleurs il est possible que tu ai reçu 2 messages de tests, j'avais changé l'email du destinataire sans réenregistrer ton fichier).

mais essaye avec ce code, ça devrais mieux fonctionner:
<?php
        /*
                ********************************************************************************************
                CONFIGURATION
                ********************************************************************************************
        */
        // destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
        $destinataire = 'needforspeed62118@hotmail.fr';

        // copie ? (envoie une copie au visiteur)
        $copie = 'oui';

        // Action du formulaire (si votre page a des paramètres dans l'URL)
        // si cette page est index.php?page=contact alors mettez index.php?page=contact
        // sinon, laissez vide
        $form_action = '';

        // Messages de confirmation du mail
        $message_envoye = "Votre message nous est bien parvenu !";
        $message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";

        // Message d'erreur du formulaire
        $message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";

        /*
                ********************************************************************************************
                FIN DE LA CONFIGURATION
                ********************************************************************************************
        */

        /*
         * cette fonction sert à nettoyer et enregistrer un texte
         */
        function Rec($text)
        {
                $text = trim($text); // delete white spaces after & before text
                if (1 === get_magic_quotes_gpc())
                {
                        $stripslashes = create_function('$txt', 'return stripslashes($txt);');
                }
                else
                {
                        $stripslashes = create_function('$txt', 'return $txt;');
                }

                // magic quotes ?
                $text = $stripslashes($text);
                $text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
                $text = nl2br($text);
                return $text;
        };

        /*
         * Cette fonction sert à vérifier la syntaxe d'un email
         */
        function IsEmail($email)
        {
                $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
                return (eregi($pattern,$email)) ? true : false;
        };

        $err_formulaire = false; // sert pour remplir le formulaire en cas d'erreur si besoin

        // si formulaire envoyé, on récupère tous les champs. Sinon, on initialise les variables.
        $nom     = (isset($_POST['nom']))     ? Rec($_POST['nom'])     : '';
        $email   = (isset($_POST['email']))   ? Rec($_POST['email'])   : '';
        $objet   = (isset($_POST['objet']))   ? Rec($_POST['objet'])   : '';
        $message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';

        if (isset($_POST['envoi']))
        {
                // On va vérifier les variables et l'email ...
                $email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
                $err_formulaire = (IsEmail($email)) ? false : true;

                if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))
                {
                        // les 4 variables sont remplies, on génère puis envoie le mail
                        $headers = 'From: '.$nom.' <'.$email.'>' . "\r\n";

                        // envoyer une copie au visiteur ?
                        if ($copie == 'oui')
                        {
                                $cible = $destinataire.','.$email;
                        }
                        else
                        {
                                $cible = $destinataire;
                        };

                        // Remplacement de certains caractères spéciaux
                        $message = html_entity_decode($message);
                        $message = str_replace('&#039;',"'",$message);
                        $message = str_replace('&#8217;',"'",$message);
                        $message = str_replace('<br>','',$message);
                        $message = str_replace('<br />','',$message);

                        // Envoi du mail
                        if (mail($cible, $objet, $message, $headers))
                        {
                                echo '<p>'.$message_envoye.'</p>'."\n";
                        }
                        else
                        {
                                echo '<p>'.$message_non_envoye.'</p>'."\n";
                        };
                }
                else
                {
                        // une des 3 variables (ou plus) est vide ...
                        echo '<p>'.$message_formulaire_invalide.' <a href="contact.php">Retour au formulaire</a></p>'."\n";
                        $err_formulaire = true;
                };
        }; // fin du if (!isset($_POST['envoi']))

        if (($err_formulaire) || (!isset($_POST['envoi'])))
        {
                // afficher le formulaire
                echo '<form id="contact" method="post" action="'.$form_action.'">'."\n";
                echo '  <fieldset><legend>Vos coordonnées</legend>'."\n";
                echo '          <p>'."\n";
                echo '                  <label for="nom">Nom :</label>'."\n";
                echo '                  <input type="text" id="nom" name="nom" value="'.stripslashes($nom).'" tabindex="1" />'."\n";
                echo '          </p>'."\n";
                echo '          <p>'."\n";
                echo '                  <label for="email">Email :</label>'."\n";
                echo '                  <input type="text" id="email" name="email" value="'.stripslashes($email).'" tabindex="2" />'."\n";
                echo '          </p>'."\n";
                echo '  </fieldset>'."\n";

                echo '  <fieldset><legend>Votre message :</legend>'."\n";
                echo '          <p>'."\n";
                echo '                  <label for="objet">Objet :</label>'."\n";
                echo '                  <input type="text" id="objet" name="objet" value="'.stripslashes($objet).'" tabindex="3" />'."\n";
                echo '          </p>'."\n";
                echo '          <p>'."\n";
                echo '                  <label for="message">Message :</label>'."\n";
                echo '                  <textarea id="message" name="message" tabindex="4" cols="30" rows="8">'.stripslashes($message).'</textarea>'."\n";
                echo '          </p>'."\n";
                echo '  </fieldset>'."\n";

                                echo '  <input type="hidden" name="envoi" value="envoye" />'."\n";
                echo '  <div style="text-align:center;"><input type="submit" value="Envoyer le formulaire !" /></div>'."\n";
                echo '</form>'."\n";
        };
?>

Merci :)

Image
Ad00500
12/08/2009 à 11:38:10
"Fc Barcelona, Més que Un Club" Ad00500
Membre
Salut, ça marche mais je ne reçois pas tout le temps les messages car j'ai fais plusieurs tests.

Est-ce normal ?
Merci d'avance.

Ad00500
12/08/2009 à 12:02:32
"Fc Barcelona, Més que Un Club" Ad00500
Membre
Ah mince excuse moi j'avais juste oublié de changer l'e-mail.
Merci à toi.

ybouane
12/08/2009 à 16:48:03
ybouane
Admin
cool, je suis heureux pour toi que ça fonctionne :)

Image
Pages: 1