Envoi données d'un formulaire vers email en PHP
Résolu
coralie25095
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
Danielcoo Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
Danielcoo Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
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) :
Voici le php (envoi.php) :
Merci encore, je ne comprends pas ce qui cloche..
Coralie
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. |
A voir également:
- Envoi php
- Easy php - Télécharger - Divers Web & Internet
- Programmer envoi sms - Guide
- Messenger envoi impossible - Forum Facebook Messenger
- Programmer envoi mail gmail - Guide
- Logiciel envoi sms - Télécharger - Messagerie
2 réponses
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 :
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
.
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
.
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
Par exemple :
devrait être :
De plus je t'invite à lire ceci : https://forums.commentcamarche.net/forum/affich-37636387-php-notice-undefined-index
et à appliquer les conseils sur la récupération "propre" des variables en php.
Très bonne soirée et encore merci!