Se connecter / S'enregistrer
Votre question

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

Tags :
  • web
  • Programmation
Dernière réponse : dans Programmation
7 Juillet 2004 15:51:08

Bonjour, voila j'explique mon problème.
Je viens de publier récemment mon site web et j'ai "creer" un formulaire (tout basic) pour obtenir des infos à propos de mes visiteurs, seulement, je en sais pas comment faire pour que lorsqu'ils cliquent sur envoyer, les infos me soit envoyer par mail.
voila, dans l'attente d'une réponse, salu !

Autres pages sur : formulaire envoi info boite mail

8 Juillet 2004 01:01:05

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.
8 Juillet 2004 21:08:34

ok, ba merci pour la réponse, entre temps j'avais trouvé une solution à mon probleme en HTML mais je vais tester ta solution pour comparer les 2, encore merci, tcho :-)
Contenus similaires
7 Novembre 2004 17:44:44

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
28 Janvier 2006 20:56:24

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
28 Janvier 2006 21:14:45

Comment as-tu réussi à envoyer un formulaire sans qu'il y ait ce problème de mail vide ?

J'en suis là aujourd'hui et je voudrais régler ce problème au plus vite.

Catounet
22 Avril 2010 15:08:02

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.
a c 232 L Programmation
22 Avril 2010 16:26:12

Essaie de remplacer $nom par $_POST['nom']
Et regarde si tu reçois bien le nom.

Ca voudrait dire qu'une option n'est pas activée (j'ai plus le nom en tête)
22 Avril 2010 17:00:24

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.
a c 232 L Programmation
22 Avril 2010 17:34:51

Si tu as un input qui s'appelle nom, il n'y a pas de raison que tu ne le récupères pas. Fais voir ton code HTML et PHP.
22 Avril 2010 18:11:09

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. ?>
a c 232 L Programmation
22 Avril 2010 19:15:55

Il manque un point dans $msg = "Prénom :\t$prenom\n";
Il faut mettre $msg .= "Prénom :\t$prenom\n";

Sinon, tu supprimes la valeur actuelle de $msg
22 Avril 2010 19:22:32

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 ?
a c 232 L Programmation
22 Avril 2010 21:08:31

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;";
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