Se connecter / S'enregistrer

Résolu Comment créer un bouton qui envoie un formulaire sur ma boite mail ?

Solutions (63)
Tags :
  • Boite mail
  • Programmation
|
Bien le bonjour à tous,

Voilà je vous expose mon problème, étant donné que je n'ai pas trouvé la solution claire à ceci:

Je suis agé de 17 ans, je comprends assez vite, mais je suis très novice en HTML et CSS, je ne me suis pas attardé sur le pHp ni le Javascript.

Je fais un site web assez simple pour un projet professionnel.
J'ai besoin de faire un formulaire, qui les internautes pourront remplir (FAIT)
J'ai besoin que quelqu'un m'explique comment faire un bouton pour m'envoyer leur formulaire directement sur ma boite E-mail.
Si il faut envoyer des documents style page pHp ou autre voilà mon mail : **********@hotmail.com (eh oui je sais, ca le fait pas, mais je l'ai depuis mon premier ordi, ca remonte et j'avais la flemme de la changer ;)  )

Voilà merci à tous les grands courageux qui auront la capacité de m'éclairer là dessus.

Bonne continuation à vous ! :) 
  • Meuniers a édité ce message
Contenus similaires
Meilleure solution
partage
|
tu peux faire les 2.

Voici une solution qui fonctionne avec 2 fichiers distinct.
J'ai simplifié des choses pour ne pas alourdir ce post, mais j'utilise ces 2 fichiers là régulièrement en développement,
pour mes tests, ce qui permet de valider le fonctionnement de la fonction mail du serveur sur lequel je travail.
Tu as juste a changer ton email a la section

//expéditeur du message
$from = "info@domaine.com";

Avec les commentaires, tu devrais pouvoir finir tout seul.

Voici un formulaire en html, simplifié au maximum.


  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3. <head>
  4. <meta http-equiv="content-type" content="text/html; charset=utf8">
  5. <title>Formulaire pour tester l'envoi d'un formulaire par e-mail</title>
  6. </head>
  7. <body>
  8. <form action="[b]testmail.php[/b]" method="post">
  9. Prenom:<br><input type="text" name="prenom" /><br />
  10. Nom:<br><input type="text" name="nom" /><br /><br />
  11. <br /><input name="submit" type="submit" value="Envoyer" />
  12. </form>
  13. </body>
  14. </html>

le fichier php testmail.php

  1. <?php
  2. //expéditeur du message
  3. $from = "info@domaine.com";
  4.  
  5. //destinataire du message
  6. //ici on fais correspondre l’expéditeur, et destinataire pour le test
  7. $to = $from;
  8.  
  9. //sujet du message
  10. $subject = "Test email";
  11.  
  12. //corps du message
  13. $message = "Ceci est un message pour le test.\n";
  14.  
  15. $headers = "From:" .$from. "\r\n" ;
  16. $headers .='Reply-To:'.$from."\r\n";
  17. $headers .='Content-Type: text/plain; charset="iso-8859-1"'."\r\n";
  18. $headers .='Content-Transfer-Encoding: 7bit'."\r\n";
  19.  
  20. //on récupère la variable $_POST, on l’insère dans le message
  21.  
  22. foreach ($_POST as $cle => $valeur) {
  23.  
  24. // ici on peut vérifier si $cle ="submit" et l'enlever du message cela correspond au bouton envoyer, donc inutile
  25. // si on peut aussi a partir d'ici ré-initialiser l'objet du message
  26.  
  27. $message.= "$cle : $valeur.\n";
  28.  
  29. }
  30. if(mail($to,$subject,$message,$headers))
  31. {
  32. echo 'Le message a bien été envoyé';
  33. }
  34. else
  35. {
  36. echo 'Le message n\'a pu être envoyé';
  37. } //*******************/
  38. ?>
  • Commenter cette solution |
Score
0
òh
òi
|
merci
  • Commenter cette réponse |
Score
0
òh
òi
|
Meilleure réponse sélectionnée par Topaze_13.
  • Commenter cette réponse |
Score
0
òh
òi
|
ahhh tu as des serveurs ? alors prends mon e-mail, et envoie moi un message, qu'on discute un peu de ça ;) 
tomlemagnific@hotmail.com
  • Commenter cette réponse |
Score
0
òh
òi
|
ok! Bon alors tu pourra me sélectionner comme meilleur réponse alors !

Peut être a bientôt sur mes serveurs. :ange: 

Marque aussi le post comme résolu :D 
  • Commenter cette réponse |
Score
0
òh
òi
|
ouaiiiis les mecs, ca marche !! merci beaucoup a tous, pour la patience dont vous avez fait preuve ! un grand merci, spécialement à toi aztequemedia :) 
  • Commenter cette réponse |
Score
0
òh
òi
|
redemarre ton serveur wamp
  • Commenter cette réponse |
Score
0
òh
òi
|
oui oui c'est bien ca, j'ai vérifié 3 fois, mais ca ne marche pas...
  • Commenter cette réponse |
Score
0
òh
òi
|
Oui sûrement.
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
ça doit être .fr pour sfr
  • Commenter cette réponse |
Score
0
òh
òi
|
C'est a toi de vérifier sur leur site
  • Commenter cette réponse |
Score
0
òh
òi
|
ok donc comme je suis chez neuf, donc sfr, le smtp c'est smtp.sfr.com non ? ca marche encore pas :/ 
  • Commenter cette réponse |
Score
0
òh
òi
|
il faut que tu inscrive te serveur smtp de ton fournisseur d'accès., smtp.live.com n'appartient surement pas a ton fournisseur et le bloque.
Le fournisseur d'acces c'est la société qui te fournie ton modem.... pour ta connection.
  • Commenter cette réponse |
Score
0
òh
òi
|
Le fournisseur d'acces c'est style, neuf, hotmail, orange et tout ceci ? si oui, j'ai fait pour hotmail, c'est smtp.live.com et ca ne marche toujours pas.
  • Commenter cette réponse |
Score
0
òh
òi
|
c'est le fichier de configuration de php
  • Commenter cette réponse |
Score
0
òh
òi
|
comment ca php.ini ? dans wamp ? ou c'est un fichier a creer ?
  • Commenter cette réponse |
Score
0
òh
òi
|
non tu dois configurer ton php.ini.
trouve la section suivante

  1. [mail function]
  2. ; For Win32 only.
  3. ; <a href="http://php.net/smtp" rel="nofollow" target="_blank">http://php.net/smtp</a>
  4. SMTP = smtp.fai.com
  5. ; <a href="http://php.net/smtp-port" rel="nofollow" target="_blank">http://php.net/smtp-port</a>
  6. smtp_port = 25


Remplace la ligne SMTP = smtp.fai.com par le serveur de courrier de ton fournisseur d’accès.
  • Commenter cette réponse |
Score
0
òh
òi
|
Effectivement, autant pour moi, le code à l'air de fonctionner, wamp me l'affiche comme il faut, mais en le testant il marque "le message n'a pu etre envoyé" est-ce normal ? le message pourra etre envoyé qu'une fois le serveur mis en ligne peut-etre ?
  • Commenter cette réponse |
Score
0
òh
òi
|
C'est pour cela que ca ne fonctionne pas!

Une fois que tu aura installer wamp tu pourra tester tout ca et tu verra que ca fonctionne. Php est un langage interprété, il a besoin d'un serveur (dans le cas des pages web)
  • Commenter cette réponse |
Score
0
òh
òi
|
En fait je n'ai pas encore hébergé mon site, pour le moment il est juste sur mon pc, et j'ouvre les pages via firefox comme une page web normale, je suis en train de télécharger wamp server 2 pour tester
  • Commenter cette réponse |
Score
0
òh
òi
|
Ok je comprends , mais le fichier tu la enregistré quelque part pour qu'il fonctionne ?

L'as tu juste copier sur ton disque dur ?
  • Commenter cette réponse |
Score
0
òh
òi
|
je n'ai pas encore de "serveur", je l'ai tout simplement essayé en remplissant par moi meme le formulaire et en l'envoyant

  • Commenter cette réponse |
Score
0
òh
òi
|
quand tu développe un script php et qu,il ne fonctionne pas bien le serveur te retourne une page te disant qu'il y a eu un problème avec un code d'erreur.
  • Commenter cette réponse |
Score
0
òh
òi
|
Je viens d'essayer le code sur mon serveur il fonctionne très bien.

Comment essais tu ce code ?
  • Commenter cette réponse |
Score
0
òh
òi
|
Qu'appelles tu un code "d'erreur PHP ?" comment se représente-t-il ? la seule chose que j'ai c'est le code que je t'ai mis plus haut lorsque t'as demandé le code complet
  • Commenter cette réponse |
Score
0
òh
òi
|
tu na pas de code d'erreur de php?
  • Commenter cette réponse |
Score
0
òh
òi
|
Biensur :) 
le voilà :

  1. <?php
  2. //expéditeur du message
  3. $from = "tomlemagnific@hotmail.com";
  4. //destinataire du message
  5. //ici on fais correspondre l’expéditeur, et destinataire pour le test
  6. $to = $from;
  7. //sujet du message
  8. $subject = "Formulaire RDV";
  9. //corps du message
  10. $message = "test mail";
  11.  
  12. $headers = "From:" .$from. "\r\n" ;
  13. $headers .='Reply-To:'.$from."\r\n";
  14. $headers .='Content-Type: text/plain; charset="iso-8859-1"'."\r\n";
  15. $headers .='Content-Transfer-Encoding: 7bit'."\r\n";
  16. //on récupère la variable $_POST, on l’insère dans le message
  17. foreach ($_POST as $cle => $valeur) {
  18. // ici on peut vérifier si $cle ="submit" et l'enlever du message cela correspond au bouton envoyer, donc inutile
  19. // si on peut aussi a partir d'ici ré-initialiser l'objet du message
  20. $message.= "$cle : $valeur.\n";
  21. }
  22. if(mail($to,$subject,$message,$headers))
  23. {
  24. echo 'Le message a bien été envoyé';
  25. }
  26. else
  27. {
  28. echo 'Le message n\'a pu être envoyé';
  29. } //*******************/
  30. ?>
  • Commenter cette réponse |
Score
0
òh
òi
|
Topaze_13 a dit :
yup,

hum ... négatif.
  1. $valeur) { // ici on peut vérifier si $cle ="submit" et l'enlever du message cela correspond au bouton envoyer, donc inutile // si on peut aussi a partir d'ici ré-initialiser l'objet du message $message.= "$cle : $valeur.\n"; } if(mail($to,$subject,$message,$headers)) { echo 'Le message a bien été envoyé'; } else { echo 'Le message n\'a pu être envoyé'; } //*******************/ ?>


toujours ceci meme avec le changement de code ...


Peut tu poster le code au complet stp
  • Commenter cette réponse |
Score
0
òh
òi
|
yup,

hum ... négatif.
  1. $valeur) { // ici on peut vérifier si $cle ="submit" et l'enlever du message cela correspond au bouton envoyer, donc inutile // si on peut aussi a partir d'ici ré-initialiser l'objet du message $message.= "$cle : $valeur.\n"; } if(mail($to,$subject,$message,$headers)) { echo 'Le message a bien été envoyé'; } else { echo 'Le message n\'a pu être envoyé'; } //*******************/ ?>


toujours ceci meme avec le changement de code ...
  • Commenter cette réponse |
Score
0
òh
òi
|
Salut,

remplace :

  1. //corps du message
  2.  
  3. $message .= "Nom: \"". $_POST['nom'] ."\"\r\n";
  4. $message .= "Prénom: \"". $_POST['prenom'] ."\"\r\n";
  5. $message .= "Email: \"". $_POST['email'] ."\"\r\n";
  6. $message .= "Fonction: \"". $_POST['fonction'] ."\"\r\n";
  7. $message .= "Object: \"". $_POST['besoin'] ."\"\r\n";


par

  1. //corps du message
  2. $message = "test mail";


ceci afin d'essayer d'isoler le problème, et de toute façon ce bout de code est redondant.
  • Commenter cette réponse |
Score
0
òh
òi
|
Salut,
J'ai vérifié mais non, ca n'est pas ca "?>" car mon code est quasi le tiens, étant donné que j'ai fait copié collé. Voici le code :
  1. <?php
  2. //expéditeur du message
  3. $from = "************@hotmail.com";
  4. //destinataire du message
  5. //ici on fais correspondre l’expéditeur, et destinataire pour le test
  6. $to = $from;
  7. //sujet du message
  8. $subject = "Formulaire RDV";
  9. //corps du message
  10. $message .= "Nom: \"". $_POST['nom'] ."\"\r\n";
  11. $message .= "Prénom: \"". $_POST['prenom'] ."\"\r\n";
  12. $message .= "Email: \"". $_POST['email'] ."\"\r\n";
  13. $message .= "Fonction: \"". $_POST['fonction'] ."\"\r\n";
  14. $message .= "Object: \"". $_POST['besoin'] ."\"\r\n";
  15.  
  16. $headers = "From:" .$from. "\r\n" ;
  17. $headers .='Reply-To:'.$from."\r\n";
  18. $headers .='Content-Type: text/plain; charset="iso-8859-1"'."\r\n";
  19. $headers .='Content-Transfer-Encoding: 7bit'."\r\n";
  20. //on récupère la variable $_POST, on l’insère dans le message
  21. foreach ($_POST as $cle => $valeur) {
  22. // ici on peut vérifier si $cle ="submit" et l'enlever du message cela correspond au bouton envoyer, donc inutile
  23. // si on peut aussi a partir d'ici ré-initialiser l'objet du message
  24. $message.= "$cle : $valeur.\n";
  25. }
  26. if(mail($to,$subject,$message,$headers))
  27. {
  28. echo 'Le message a bien été envoyé';
  29. }
  30. else
  31. {
  32. echo 'Le message n\'a pu être envoyé';
  33. } //*******************/
  34. ?>
  • Commenter cette réponse |
Score
0
òh
òi
|
salut,

si tu as cet affichage, c'est que tu as le code « ?>» qui s'est inséré dans ton fichier et qui termine l'exécution du script.
Tu as du mal recopier le code.
  • Commenter cette réponse |
Score
0
òh
òi
|
Citation :
  1. $valeur) {
  2. // ici on peut vérifier si $cle ="submit" et l'enlever du message cela correspond au bouton envoyer, donc inutile
  3. // si on peut aussi a partir d'ici ré-initialiser l'objet du message
  4. $message.= "$cle : $valeur.\n";
  5. }
  6. if(mail($to,$subject,$message,$headers))
  7. {
  8. echo 'Le message a bien été envoyé';
  9. }
  10. else
  11. {
  12. echo 'Le message n\'a pu être envoyé';
  13. } //*******************/
  14. ?>


Voilà ce que ca m'affiche dans une nouvelle fenêtre lorsque je clique sur "envoyer" ... tu comprends quelque chose toi ?
  • Commenter cette réponse |
Score
0
òh
òi
|
mais faut il faire un code html qui se réfère a la page php ou alors coller le php dans la page html ??
  • Commenter cette réponse |
Score
0
òh
òi
|
Dans mon dernier code posté tout est en ordre. :D 
  • Commenter cette réponse |
Score
0
òh
òi
|
* rajouter des points après chaque $message sauf le premier
* mettre ta page php en action du formulaire de ta page html
  • Commenter cette réponse |
Score
0
òh
òi
|
où faut-il rajouter des points ? et comment je peux le mettre en rapport avec ma page html ?
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
monami62 a dit :
Il ne manquerait pas des points de concaténation dans la confection de $message ?

En effet, j'ai fait des copier/coller de la 1ère ligne sans rajouter les points :s
  • Commenter cette réponse |
Score
0
òh
òi
|
Effectivement il va manquer des morceaux.
Voici une version plus condensé, qui te permet de récupérer tous les paramètres du formulaire


<?php

$headers = 'From: "'. $_POST['nom'] . ' '. $_POST['prenom'] .'"<'. $_POST['email'] .'>\r\n';
$headers .='Reply-To: ****@hotmail.com'."\r\n";
$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\r\n";
$headers .='Content-Transfer-Encoding: 8bit';

// pour récupérer tous les paramètres du formulaire

foreach ($_POST as $cle => $valeur) {
$message.= "$cle : $valeur.\n";
}

if(mail('***@hotmail.com', 'Demande de Rendez-vous', $message, $headers))
{
echo 'Le message a bien été envoyé';
}
else
{
echo 'Le message n\'a pu être envoyé';
}
?>
  • Commenter cette réponse |
Score
0
òh
òi
|
Il ne manquerait pas des points de concaténation dans la confection de $message ?
  • Commenter cette réponse |
Score
0
òh
òi
|
Merci omar pour le code definitif ^^' j'avais pas compris ca comme ca, désolé. Et comment on l'intègre dans la page html en tant que bouton ? on fait juste une image lien vers la page PHP ?
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
  1. <?php
  2. $headers = 'From: "'. $_POST['nom'] . ' '. $_POST['prenom'] .'"<'. $_POST['email'] .'>\r\n';
  3. $headers .='Reply-To: ****@hotmail.com'."\r\n";
  4. $headers .='Content-Type: text/plain; charset="iso-8859-1"'."\r\n";
  5. $headers .='Content-Transfer-Encoding: 8bit';
  6.  
  7. $message = "Nom: \"". $_POST['nom'] ."\"\r\n";
  8. $message = "Prénom: \"". $_POST['prenom'] ."\"\r\n";
  9. $message = "Email: \"". $_POST['email'] ."\"\r\n";
  10. $message = "Fonction: \"". $_POST['fonction'] ."\"\r\n";
  11. $message .= "Object: \"". $_POST['besoin'] ."\"\r\n";
  12.  
  13. if(mail('***@hotmail.com', 'Demande de Rendez-vous', $message, $headers))
  14. {
  15. echo 'Le message a bien été envoyé';
  16. }
  17. else
  18. {
  19. echo 'Le message n\'a pu être envoyé';
  20. }
  21. ?>
  • Commenter cette réponse |
Score
0
òh
òi
|
Tu les concatene dans une variable ($message par exemple) et tu la met à la place de : 'Demande de Rendez-vous'
  • Commenter cette réponse |
Score
0
òh
òi
|
et alors on utilise quelle balise pour mettre du contenu dans le message, faire un récap' des info qu'il a entré ?
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Fonction et Object il ne faut pas mettre ça dans les headers, mais dans le contenu du message...

edit: et c'est parce que tu ne concatènes pas avec .=
  • Commenter cette réponse |
Score
0
òh
òi
|
Ah bon ? pourquoi donc ?
  • Commenter cette réponse |
Score
0
òh
òi
|
$headers = "From: \"". $nom, $prenom ."\"<". $email .">\r\n"
$headers = "Fonction: \"". $fonction ."\"\r\n"
$headers = "Object: \"". $besoin ."\"\r\n"

si tu ecris cela comme ca seulement la 3eme ligne sera integré....



  • Commenter cette réponse |
Score
0
òh
òi
|
like that ?

  1. <?php
  2. $headers = "From: \"". $nom, $prenom ."\"<". $email .">\r\n"
  3. $headers = "Fonction: \"". $fonction ."\"\r\n"
  4. $headers = "Object: \"". $besoin ."\"\r\n"
  5. $headers .='Reply-To: tomlemagnific@hotmail.com'."\r\n";
  6. $headers .='Content-Type: text/plain; charset="iso-8859-1"'."\r\n";
  7. $headers .='Content-Transfer-Encoding: 8bit';
  8.  
  9. if(mail('tomlemagnific@hotmail.com', 'Demande de Rendez-vous', $headers))
  10. {
  11. echo 'Le message a bien été envoyé';
  12. }
  13. else
  14. {
  15. echo 'Le message n\'a pu être envoyé';
  16. }
  17. ?>
  • Commenter cette réponse |
Score
0
òh
òi
|
+1 :) 

J'ai recopier bètement lol
  • Commenter cette réponse |
Afficher plus de solutions

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS