Envoi données d'un formulaire vers email en PHP [Résolu/Fermé]

Signaler
Messages postés
3
Date d'inscription
jeudi 18 août 2016
Statut
Membre
Dernière intervention
18 août 2016
-
Messages postés
31
Date d'inscription
samedi 24 janvier 2015
Statut
Membre
Dernière intervention
25 septembre 2016
-
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 = "contact@monsite.com";
$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

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.

2 réponses

Messages postés
32148
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 avril 2021
3 415
Bonjour,

Où se trouve ton site web ? Sur un hébergeur internet ou tu le testes en local sur ton ordi ??

Si tu es en local :
- As tu bien installé (et utilisé ) un logiciel tel que wamp ou easyphp ou xampp ???
- quelle est l'URL qui apparait dans ton navigateur internet lorsque tu es sur ton site ? L'url commence bien par localhost ??
- as tu bien paramétré le smtp dans le php.ini ??

Si tu as hébergé ton site sur un serveur web :
- Quelle est le nom de ton hébergeur ?
- As tu vérifié qu'il autorisait l'utilisation de la fonction mail ?
- Qu'est-ce qui s'affiche lorsque tu te retrouves sur la page envoi.php ? Y a t'il un message d'erreur ?


Dans les deux cas, tu peux ajouter au début de ton code php la ligne suivante :
error_reporting(E_ALL);

pour afficher les erreurs php.


**** NB ****
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

.

1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
3
Date d'inscription
jeudi 18 août 2016
Statut
Membre
Dernière intervention
18 août 2016

Bonjour,

Merci pour cette réponse rapide!
Et désolée pour la coloration syntaxique.

- En fait j'ai créé le site à partir d'un template en local, et pour voir le PHP je l'envoi via Filezilla à mon hébergeur (1&1). Du coup le php marche bien quand le site est publié sur 1&1.
- Je reçois bien le mail sur la boite mail 1&1 lorsque je clique sur "envoyer" dans mon formulaire, je présume donc qu'il autorise la fonction mail. Ce sont les champs qui ne sont pas envoyés...
- Lorsque je clique sur "Envoyer" un message s'affiche : "votre message a bien été envoyé". Et effectivement un mail est envoyé dans la foulée (avec le bon objet, et dans le message, uniquement le nom des champs : "Nom : ; email : ; message :) alors que j'ai complété le formulaire.

J’ai ajouté la ligne afin d’afficher les messages d’erreur, voici ce qu’il me met :

"Notice: Undefined index: email in /homepages/26/d643209173/htdocs/foodee/envoi.php on line 5

Notice: Undefined index: name in /homepages/26/d643209173/htdocs/foodee/envoi.php on line 8

Notice: Undefined index: email in /homepages/26/d643209173/htdocs/foodee/envoi.php on line 9

Notice: Undefined index: occation in /homepages/26/d643209173/htdocs/foodee/envoi.php on line 10

Notice: Undefined index: message in /homepages/26/d643209173/htdocs/foodee/envoi.php on line 11
Votre message à bien été envoyé."

Je ne comprends pas car dans index.html j’ai défini les champs « email », « name », « message », etc…

En même temps je n’y connais pas grand-chose. Est-ce plus clair pour vous ?

Si vous avez d’autres questions n’hésitez pas… Merci encore pour votre aide.

Coralie
Messages postés
32148
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 avril 2021
3 415 >
Messages postés
3
Date d'inscription
jeudi 18 août 2016
Statut
Membre
Dernière intervention
18 août 2016

Le problème c'est que tu n'as pas mis d'attribut NAME dans tes éléments HTML.....
Par exemple :
<input id="email" class="form-control" placeholder="Email" type="email">

devrait être :
<input id="email" class="form-control" placeholder="Email" type="email" name="email">


De plus je t'invite à lire ceci : https://www.commentcamarche.net/faq/1391-php-notice-undefined-index
et à appliquer les conseils sur la récupération "propre" des variables en php.
Messages postés
3
Date d'inscription
jeudi 18 août 2016
Statut
Membre
Dernière intervention
18 août 2016

Merci infiniment, tout marche après avoir appliqué tous vos conseils !

Très bonne soirée et encore merci!
Messages postés
31
Date d'inscription
samedi 24 janvier 2015
Statut
Membre
Dernière intervention
25 septembre 2016
3
Bonjour,
Consermant xampp je ne l'aime pas parce qu'il a trop d'erreur, ce que j'aime le plus c'est WebLocal parce qu'il es puissant et na jamais recu d'erreur contrairement a xampp.
le lien de téléchargement: http://ausea.eu.pn/