Se connecter avec
S'enregistrer | Connectez-vous

Formulaire avec envoi d'info sur ma boite e-mail

Dernière réponse : dans Programmation
Lassé par la pub ? Créez un compte

Il va te falloir utiliser PHP.

Ton formulaire de saisie doit avoir une structure HTML semblable à celle-ci, contenant entre autres les différents champs que tu veux recueillir :

<FORM METHOD="POST" ACTION="envoimail.php">
<INPUT TYPE="text" NAME="champ_1">
<INPUT TYPE="text" NAME="champ_2">
.. Et tous les champs dont tu as besoin ..
<INPUT TYPE="submit" VALUE="Envoyer">
</FORM>

Page envoimail.php :

Il utilises la fonction mail() de php.

Ce script récupère les données saisies dans le formulaire et les envoie sous forme de mail. Une fois l'envoi effectué, il affiche un message (ex : "Merci, vos informations ont bien été envoyées...")


<?php

$msg = "Champ 1 :\t$champ_1\n";
$msg .= "Champ 2 :\t$champ_2\n";
$msg .= "Champ 3 :\t$champ_3\n";

// pour autant de champs que tu as

$destinataire = "toi@tonmail.com";
$sujet = "Réception d'infos";
$header = "De: Mon site web<> \n";

mail($destinataire, $sujet, $msg, $header);

echo "<HTML><HEAD>";
echo "<TITLE>Envoi effectué</TITLE></HEAD><BODY>";
echo "<H1 align=center>Merci, vos informations ont bien été envoyées.</P>";
echo "</BODY></HTML>";

?>

Attention cependant : Free n'accepte pas la fonction mail (), comme beaucoup d'autres hébergeurs gratuits, afin de lutter contre le spam.

Bonjour,

J'ai donc essayer de faire un formulaire avec cette fonction mail, mais je reçoit le formulaire sans les renseignements.

En fait, je ne reçoit que les champs vide alors qu'ils ont été remplis.

D'où vient le probleme svp ?

Merci

@ bientôt

Je trouvais super cet info de pouvoir envoyer un mail html par une page php mais.... ça ne marche pas comme je veux. En cliquant sur "envoyer", un fichier html demande à être enregistré en page html sur mon ordinateur et sans les renseignements... j'ai dû oublier quelque chose. Mais déjà, je n'y connais rien en php et je me demande si les inexactitudes du genre :
$msg = "Champ 1 :\t$champ_1\n";
$msg .= "Champ 2 :\t$champ_2\n";
$msg .= "Champ 3 :\t$champ_3\n";
champ 1 puis champ_1 sont voulues ou non ? c'est à dire l'underscore dans le deuxième et non pas dans le premier ?

Voici ce que j'ai écrit en recopiant le code :
<?php
$msg = "NOM :\t$ADRESSE\n";
$msg .= "PRENOM :\t$ADRESSE\n";
$msg .= "ADRESSE :\t$ADRESSE\n";
$msg .= "TEL :\t$TEL\n";
$msg .= "FAX :\t$FAX\n";
$msg .= "EMAIL :\t$EMAIL\n";
$msg .= "TEXTE LIBRE :\t$TEXTE LIBRE\n";
$msg .= "SUBMIT :\t$SUBMIT\n";
$msg .= "RESET :\t$RESET\n";
// pour autant de champs que tu as

$destinataire = "cath@les-enchanteurs.com";
$sujet = "Réception d'infos";
$header = "http://perso.wanadoo.fr/primel-lediben-port-sympa/&lt;> \n";

mail($destinataire, $sujet, $msg, $header);
echo "<html><head>";
echo "<title>Envoi effectué</title></head><body>";
echo "<H1 align=center>Merci, vos informations ont bien été
envoyées.";
echo "</BODY></HTML>";
?>
ou est l'erreur ?

Catounet

Bonjour, je vois que ce sujet date un peu mais je suis au même point que catounet donc si une solution a été trouvé depuis... :whistle: 

Quand j'envoie mon formulaire, je reçois bien un mail mais vide enfin sans les informations.
Voila ce que je reçois :

Nom :
Adresse E-Mail:
Message:

Les informations n'apparaissent pas et je ne trouve pas mon erreur.
Pouvez-vous m'aider ? :??: 

Voici ma page html

  1. <HTML>
  2. <HEAD>
  3. <TITLE>Test formulaire</TITLE>
  4. </HEAD>
  5. <BODY>
  6. <FORM method="POST" action="formail.php">
  7. <P>Nom :<br>
  8. <INPUT type="text" name="nom" size=30>
  9. </p>
  10. <P>Adresse E-mail :<br>
  11. <INPUT type="text" name="email" size=30>
  12. </p>
  13. <P>Votre message :<br>
  14. <textarea name="message" cols=30 rows=5></textarea>
  15. </p><INPUT type="submit" value="Envoyer">
  16. </FORM>
  17. </BODY>
  18. </HTML>



Et voici ma page formail.php

  1. <?php
  2.  
  3. $msg = "Nom :\t$nom\n";
  4. $msg .= "Adresse E-Mail:\t$email\n";
  5. $msg .= "Message:\t$message\n\n";
  6.  
  7. $recipient = "mon adresse e-mail";
  8. $subject = "test formulaire";
  9.  
  10. $mailheaders = "From: Mon site web<> \n";
  11. $mailheaders .= "Reply-To: $email\n\n";
  12.  
  13. mail($recipient, $subject, $msg, $mailheaders);
  14.  
  15. echo "<HTML><HEAD>";
  16. echo "<TITLE>Formulaire envoyé!</TITLE></HEAD><BODY>";
  17. echo "<H1 align=center>Merci, $nom</H1>";
  18. echo "<P align=center>";
  19. echo "Votre message a bien été envoyé.</P>";
  20. echo "</BODY></HTML>";
  21.  
  22. ?>


Je suis chez Free, est-ce lui qui bloque les données ? Si c'est le cas, comment contourner cela ?
Merci.

Merci pour ta réponse.

Donc j'ai ajouté :


$nom=$_POST['nom'];
$prenom=$_POST['prenom'];
$email=$_POST['email'];
$message=$_POST['message'];



J'espere que j'ai bien compris ce que tu voulais dire. Quand j'envoi mon formulaire cela fonctionne à présent donc je te remercie, je reçois bien mes infos par mail :

Prénom : Alain
Adresse E-Mail: alaindupont@hotmail.fr
Message: ceci est un test

Mais comme tu peux le remarquer, toute mes données ne s'affichent pas, le nom est absent et comme je désire mettre plusieurs champs par la suite je ne comprend pas mon erreur.

Voila ma page HTML :

  1. <HTML>
  2. <HEAD>
  3. <TITLE>E-Mail Form</TITLE>
  4. </HEAD>
  5. <BODY>
  6. <FORM method="POST" action="formail.php">
  7. <P>Prénom :<br>
  8. <INPUT type="text" name="prenom" size=30>
  9. </p>
  10. <P>Nom :<br>
  11. <INPUT type="text" name="nom" size=30>
  12. </p>
  13. <P>Adresse E-mail :<br>
  14. <INPUT type="text" name="email" size=30>
  15. </p>
  16. <P>Votre message :<br>
  17. <textarea name="message" cols=30 rows=5></textarea>
  18. </p><INPUT type="submit" value="Envoyer">
  19. </FORM>
  20. </BODY>
  21. </HTML>


Et voila ma page PHP :

  1. <?php
  2.  
  3. $nom = $_POST['nom'];
  4. $prenom = $_POST['prenom'];
  5. $email = $_POST['email'];
  6. $message = $_POST['message'];
  7.  
  8.  
  9. $msg = "Nom :\t$nom\n";
  10. $msg = "Prénom :\t$prenom\n";
  11. $msg .= "Adresse E-Mail:\t$email\n";
  12. $msg .= "Message:\t$message\n\n";
  13.  
  14. $recipient = "mon adresse mail";
  15. $subject = "test formulaire";
  16.  
  17. $mailheaders = "From: My web site<> \n";
  18. $mailheaders .= "Reply-To: $email\n\n";
  19.  
  20. mail($recipient, $subject, $msg, $mailheaders);
  21.  
  22. echo "<HTML><HEAD>";
  23. echo "<TITLE>Formulaire envoyé!</TITLE></HEAD><BODY>";
  24. echo "<H1 align=center>Merci, $prenom $nom</H1>";
  25. echo "<P align=center>";
  26. echo "Votre message a bien été envoyé.</P>";
  27. echo "</BODY></HTML>";
  28.  
  29. ?>

Ok je vais tester cela. Moi j'avais tout simplement remplacé :

$msg = "Nom :\t$nom\n";
$msg = "Prénom :\t$prenom\n";
$msg .= "Adresse E-Mail:\t$email\n";
$msg .= "Message:\t$message\n\n";


par une seule ligne :

$msg = "Nom:\t$nom\nPrenom:\t$prenom\nAdresse E-mail:\t$email\nMessage:\t$message\n\n";

Et cela fonctionne mais je ne sais pas si cela est correct ou conforme.


Je viens de tester à l'instant ce que tu m'as dit et cela fonctionne également. Perso je préfère ta méthode lol je m'y retrouve mieux !

En tous cas je te remercie du temps que tu m'as accordé. Je vais juste t'embêter encore un peu si tu le permet :ange: 

Voila quand je tape dans mon formulaire des caractères spéciaux genre é,è,à etc... Je recois dans mon e-mail un point d'interrogation à la place. Comment puis je autoriser ces caractères ?
Expert Programmation

Ta méthode est correcte aussi, c'est une autre façon de l'écrire :) 

Pour le problèmes de caractères spéciaux, ça doit être au niveau de l'encodage utilisé. Essaie d'ajouter ça après $mailheaders .= "Reply-To: $email\n\n";
$mailheaders .= "charset=UTF-8;";
Lassé par la pub ? Créez un compte
Tom's guide dans le monde