Bonjour,

Je viens vers vous cette fois-ci car mon formulaire n'envoie rien.
J'ai pourtant suivi pas mal de tuto sur internet puisque la notion de php est assez nouvelle pour moi, cependant lorsque je réalise un formulaire simple de ce type :

<form method="post" action="contactmail.php">
Nom / Prénom / Blase : <input type="text" name="username"/><p>
Email : <input type="text" name="usermail"/><p>
Sujet : <input type="text" name="subject"/><p>
Message : <textarea name="message" cols="30" rows="15"></textarea>
<input type="submit" value="Envoyer"/>
</form>

avec pour fichier php :

<?php
if(isset($_POST) && isset($_POST'username']) && isset($_POST'usermail']) && isset($_POST'subject']) && isset($_POST'message']))
{
    extract($_POST);
    if(!empty($username) && !empty($usermail) && !empty($subject) && !empty($message))
    {
        $destinataire = "mon.mail@hotmail.fr";
        $sujet = "Formulaire de contact -> $subject ";
        $msg = "Un nouveau formulaire est arrivé \n
        Nom : $username \n
        Email : $usermail \n
        Message : $message;
        $entete = "From : $username \n Reply-To : $usermail";
        mail($destinataire, $sujet, $msg, $entete);
        echo "Message reçu $username ! Merci";
    }
    else
    {
        echo "Vous n'avez pas rempli tous les champs";
    }
}
?>

(à la place de mon.mail@hotmail.fr il y a l'adresse à laquelle je souhaite recevoir le formulaire, évidemment)
Et bien en faisant cela mon formulaire fonctionne.

Seulement, pour une question de style, j'ai trouvé un formulaire html bien plus établi et surtout bien plus joli grace au css(en réalité le formulaire tout simple je l'ai réaliser pour savoir si mon code php était fonctionnel) mais ce dernier ne fonctionne pasavec mon fichier .php, et je ne comprends absolument pas pourquoi.

Avez vous la solution à mon problème ? Il me manque des éléments pour savoir ce qui cloche...

voici le code du formulaire plus élaboré :

<div id="content">
       <h1> Nous Contacter </h1>

        <form action="contactmail.php" method="post" autocomplete="on">
          <p> <label for="username" class="iconic user" > Nom <span class="required">*</span></label> <input type="text" name="username" id="username" required="required" placeholder="ex: Pierre Dupont" /> </p>
          <p> <label for="usermail" class="iconic mail-alt"> Adresse E-mail <span class="required">*</span></label> <input type="email" name="usermail" id="usermail" placeholder="ex: tccompany2015@gmail.com" required="required" /> </p>
          <p> <label for="usersite" class="iconic link"> Un site internet ? </label> <input type="url" name="usersite" id="usersite" placeholder="ex: http://www.exemple.com" /> </p>
            <p> <label for="subject" class="iconic quote-alt"> Objet </label> <input type="text" name="subject" id="subject" placeholder="Le sujet" /> </p>
          <p> <label for="message" class="iconic comment"> Message <span class="required">*</span></label> <textarea placeholder="Votre message ici" required="required" ></textarea> </p>
            <p class="indication"> Tous les champs marqués d'un <span class="required">*</span> sont obligatoires</p>

          <input type="submit" value="ENVOYER" />       
        </form>     
    </div>

Le CSS est un peu plus long... Si besoin est, je veux bien le poster, mais je doute que ce soit le css qui coince dans l'envoi du mail... Enfin selon mes connaissances limitées lol.

Merci par avance !

Cordialement

7 réponses


Carouge10
Réponse acceptée

Bonjour,

Le "name" pour le textarea n'est pas renseigné donc quand vous testez l'existence de $_POST'message'], il vous renvois false.

F2014
Auteur

Bonjour, merci pour votre réponse rapide !

Voici désormais mon code :

<div id="content">
       <h1> Nous Contacter </h1>

        <form action="contactmail.php" method="post" autocomplete="on">
          <p> <label for="username" class="iconic user" > Nom <span class="required">*</span></label> <input type="text" name="username" id="username" required="required" placeholder="ex: Pierre Dupont" /> </p>
          <p> <label for="usermail" class="iconic mail-alt"> Adresse E-mail <span class="required">*</span></label> <input type="email" name="usermail" id="usermail" placeholder="ex: tccompany2015@gmail.com" required="required" /> </p>
          <p> <label for="usersite" class="iconic link"> Un site internet ? </label> <input type="url" name="usersite" id="usersite" placeholder="ex: http://www.exemple.com" /> </p>
            <p> <label for="subject" class="iconic quote-alt"> Objet </label> <input type="text" name="subject" id="subject" placeholder="Le sujet" /> </p>
          <p> <label for="message" class="iconic comment"> Message <span class="required">*</span></label> <textarea name="message" id="message" placeholder="Votre message ici" required="required" ></textarea> </p>
            <p class="indication"> Tous les champs marqués d'un <span class="required">*</span> sont obligatoires</p>

          <input type="submit" value="ENVOYER" />       
        </form>     
    </div>

J'ai également ajouté l'id au textarea... Et là j'obtiens bien le message"Message reçu $username ! Merci", seulement je ne reçois rien sur ma boite mail ! :/

Cordialement

Au tout début de votre fichier de traitement faite ceci:

<?php
var_dump($_POST);
die();

Et donner-nous ce qui est afficher.

F2014
Auteur

Voici ce qui est désormais affiché :

array(5) { "username"]=> string(7) "testeur" "usermail"]=> string(25) "florent.wasson@hotmail.fr" "usersite"]=> string(0) "" "subject"]=> string(11) "ObjetDeTest" "message"]=> string(32) "Voici mon message pour le test !"

J'ai édité ma réponse juste au dessus : en effet désormais avec le name et de id renseigné, je vois bien le message de confirmation. Mais aucun mail ne m'arrive.

Pardon, je pensais que le traitement ne se faisait pas.

Essayer plutôt ceci car apparemment c'est la fonction mail qui bloque.

error_reporting(E_ALL);
ini_set("display_errors", 1);
F2014
Auteur

Je crois que l'envoi met beaucoup de temps, je viens de recevoir un mail test que j'ai fais juste après l'ajout de name et de id. Je pense que mon problème était très simple et est résolu. J'attends le dernier mail pour confirmation.

Merci beaucoup pour votre aide très rapide ! :) Je valide dès réception.

Je vous en prie.