Problème envoi données d'un formulaire vers email

Petit nouveau ! | 1 Messages

18 août 2016, 11:41

Bonjour,

Je suis novice et je suis entrain de créer un site internet. Je voulais le laisser en html, et j'aimerais juste utiliser du php pour envoyer les données d'un formulaire. Le formulaire en html est déjà intégré au template. Malheureusement il y a un problème : lorsque j'envoie les données, je ne reçois pas les champs remplis.

Voici le mail que je reçois :
Objet : Un message sur mon site
Message : Nom :
Email :
Message :

J'ai fait de nombreuses recherches et tests avant de me tourner vers vous, je vous remercie d'avance ...



Voici le html (index.html) :

<form action = "envoi.php" method="post" name= "Submit"> <div class="col-md-6 to-animate-2">
<h3> Formulaire de contact</h3>
<div class="form-group ">
<label for="name" class="sr-only">Nom</label>
<input id="name" class="form-control" placeholder="Name" type="text">
</div>
<div class="form-group ">
<label for="email" class="sr-only">Email</label>
<input id="email" class="form-control" placeholder="Email" type="email">
</div>
<div class="form-group">
<label for="occation" class="sr-only">Occasion</label>
<select class="form-control" id="occation">
<option>Sélectionnez</option>
<option>Repas quotidien</option>
<option>Buffet</option>
<option>Autres</option>
</select>
</div>
<div class="form-group ">
<label for="date" class="sr-only">Date</label>
<input id="date" class="form-control" placeholder="Date & Time" type="text">
</div>



<div class="form-group ">
<label for="message" class="sr-only">Message</label>
<textarea name="" id="message" cols="30" rows="5" class="form-control" placeholder="Message"></textarea>
</div>
<div class="form-group ">
<input class="btn btn-primary" value="Envoyer" name="envoi" type="submit">
</div>


Voici le php (envoi.php) :

<?php

$EmailFrom = $_POST['email'];
$EmailTo = "[email protected]";
$Subject = "Un message sur mon site";
$Nom = $_POST['name'];
$Email = $_POST['email'];
$Occasion = $_POST['occation'];
$Message = $_POST['message'];

// validation
$validationOK=true;
if (!$validationOK) {
echo "Error";
exit;
}

// mise en form mail
$Body = "";
$Body .= "Nom: ";
$Body .= $Nom;
$Body .= "\n";
$Body .= "Email: ";
$Body .= $Email;
$Body .= "\n";
$Body .= "Message: ";
$Body .= "\n";
$Body .= $Message;
$Body .= "\n";

// envoi email
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");

// message success-error
if ($success){
echo "Votre message à bien été envoyé.";
}
else{
echo "Une erreur s'est produite à l'envoi de votre message.";
}
?>


Merci encore, je ne comprends pas ce qui cloche..

Coralie

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

18 août 2016, 13:46

Bonjour,

En HTML, il faut que tes champs input ait un nom avec le paramètre name="...", en effet c'est le name et pas l'id qui est envoyé en formulaire
Quand tout le reste a échoué, lisez le mode d'emploi...