Votre question

Envoie les info d'un formulaire dans un mail...

Tags :
  • Javascript
  • Programmation
Dernière réponse : dans Programmation
17 Novembre 2010 16:16:22

Bonjour a tous, je voudrais savoir comment m'y prendre pour envoyer les informations saisies dans un formulaire sur le site web que je fait... Je me débrouille très bien en Html/Css/Javascript et j'ai une base en Php/mysql. J'ai fait pas mal de recherche sur le net, mais rien de très précis !

J'aimerais savoir si il faut une base de donnée pour être capable d'envoyer les message ? ... Je connais pas trop ce principe la...

Merci de bien vouloir m'aider,
mathyeu

Autres pages sur : envoie info formulaire mail

a c 145 L Programmation
17 Novembre 2010 17:41:00

Non, il n'y a pas besoin d'une base de données pour envoyer un email.
Il te suffit de formater le message à envoyer et d'utiliser la fonction mail(). Ou si tu veux te simplifier un peu la vie, d'utiliser ce que j'ai fait sur http://www.g33k-zone.org/post/2009/10/05/Envoyer-un-ema...
m
0
l
17 Novembre 2010 17:55:11

Mais si je veux que les informations saisie dans mon formulaire soit inclu dans le mail .. dans le corp du mail en texte. Sans joindre de fichier est-ce possiblle ?!
m
0
l
Contenus similaires
a c 232 L Programmation
17 Novembre 2010 18:06:48

Le lien de CrazyCat n'oblige pas à ce qu'un fichier soit joint.
Tu as ce paragraphe là qui détaille ça :
Citation :
Sujet, corps du mail

Les méthodes setSubject($subject) et setBody($body) permettent préparer le sujet et le corps de l'email. Aucune vérification n'est faite sur ces champs lors de leur création, mais si le sujet est vide il y aura une erreur fatale.


Comme CrazyCat t'as dit, tu formates ton message, exemple:
  1. $body = 'Ceci est le contenu de mon message, avec les valeurs entrées dans le formulaire:';
  2. $body .= 'Nom: '.$_POST['nom'];
  3. $body .= 'Prénom: '.$_POST['prenom'];
  4. //etc...
  5. $mail->setBody($body);
m
0
l
18 Novembre 2010 01:49:21

Ouais, je n'avais pas encore lue cette section lorsque j'ai répondu ! Mais comme je vous l'est dit... Je n'ai qu'une base en php alors je suis un peux mélanger dans quoi vas ou et ainsi de suite.

1ere chose :
crée mes variable..ex:
$body ='Nom : ': '.$_POST['nom'];
$body .='E-mail : ': '.$_POST['email'];
$body .='Message : ': '.$_POST['message'];
$sujet = 'Commentaire';
$destinataire ='Mon@adresse.com';

2ieme chose
$mail($destinataire, $sujet, $body);

Je suis mélanger a cause des style différent javascript/html/php/delphi ...

Alors si vous pouriez me remettre sur le droit chemin !

Merci,
Mathyeu
m
0
l
a c 145 L Programmation
18 Novembre 2010 09:18:24

C'est presque bon, il te manque aussi un champ FROM pour éviter que le mail soit anonyme (voir l'exemple 2 qui est sur http://fr.php.net/manual/fr/function.mail.php ) et ajouter "\n\n" à la fin de chaque ligne du $body.

Et c'est mail($destinataire, $sujet, $body); sans le $ devant mail.
m
0
l
18 Novembre 2010 14:18:02

Sa veux dire qu'avec ca de code cela devrais marcher ?! :

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


envoi.php:
  1. <?php
  2.  
  3. $destinataire ='mon_adresse@hotmail.com';
  4. $sender = 'From: Client@catalogue.com';
  5. $sujet = 'Commentaire';
  6. $body ='Nom : '.$_POST['nom'];
  7. $body .='E-mail : '.$_POST['email'];
  8. $body .='Message : '.$_POST['message'];
  9.  
  10. mail($destinataire, $sender, $sujet, $body);
  11.  
  12. ?>

Me manque t'il quelque chose ?!
m
0
l
a c 145 L Programmation
18 Novembre 2010 14:45:20

Je me permets d'apporter les corrections qui me semblent utiles :
envoi.php:
  1. <?php
  2. $destinataire ='mon_adresse@hotmail.com';
  3. $sender = 'From: '$_POST['nom'].'<'.$_POST['email'].'>';
  4. $sujet = 'Commentaire';
  5. $body ='Nom : '.$_POST['nom']."\r\n";
  6. $body .='E-mail : '.$_POST['email']."\r\n";
  7. $body .='Message : '.$_POST['message']."\r\n";
  8.  
  9. mail($destinataire, $sujet, $body, $sender);
  10.  
  11. ?>

Avec ça, ça devrait tourner :) 
m
0
l
a c 232 L Programmation
18 Novembre 2010 15:09:50

Si je peux me permettre, il faut peut-être ajouter des vérifications des données, surtout pour le $sender, s'il n'est pas fixe, qui peut être utilisé pour modifier les headers du mail.
m
0
l
a c 145 L Programmation
18 Novembre 2010 15:46:56

OmaR a dit :
Si je peux me permettre, il faut peut-être ajouter des vérifications des données, surtout pour le $sender, s'il n'est pas fixe, qui peut être utilisé pour modifier les headers du mail.


Cela va sans dire, je n'ai donné que le principe et pas tout ce qui concerne la sécurité du formulaire et l'anti-injection de code.
m
0
l
18 Novembre 2010 16:32:13

Sa marche ! j'ai changer mon stmp puisque je le roule avec easyphp.

est-ce possible de mélanger le php au java script ?!

puisque mes capacités sont pas mal plus élevé en java script alors je ferais mes conditions et mes vérification en java ?

Merci de vos reponses !

Mathyeu
m
0
l
18 Novembre 2010 17:29:30

mat-27 a dit :
puisque mes capacités sont pas mal plus élevé en java script alors je ferais mes conditions et mes vérification en java ?


Non car les vérifications en Javascript sont facilement contournables.
Au minimum il faut une vérification côté serveur en PHP. Ensuite si tu veux vérifier le formulaire côté client avant la soumission, tu peux vérifier en plus en Javasript.

La syntaxe du PHP étant proche du Javascript tu ne devrais pas avoir de mal ;) 
m
0
l
a c 145 L Programmation
18 Novembre 2010 22:00:08

La vérification Javascript est intéressante pour l'utilisateur en évitant un rechargement de la page, mais elle n'assure aucune sécurité réelle.
La vérification côté serveur est toujours à faire du moment que des données sont entrées par un utilisateur.
m
0
l
25 Novembre 2010 15:46:19

Merci Beaucoup de m'aider ! Désolé pour le délai de reponse, j'étais sur un autre projet... j'usqua date sa l'avance très bien !
m
0
l
2 Décembre 2010 15:45:49

j'ai un problème, quand je fait envoyer il me dit l'erreur :

Notice: Undefined index: NomArticle in D:\EasyPHP5.2.10\www\catalogue\envoi.php on line 12

Ma ligne 12 dans mon envoi.php:
  1. $sujet = 'Nom article 1 :'.$_POST['NomArticle']."\r\n";


puis dans mon formulaire.php :
  1. <tr>
  2. <td>
  3. Nom (complet) :<input type="text" size="30" id="NomPrenom" name="NomPrenom" value="" />
  4. </td>
  5. </tr>


Je ne comprend pas trop l'erreur pourtant le nom de mon champ que je saisie est pareille ... ?
m
0
l
a c 232 L Programmation
2 Décembre 2010 16:42:45

Tu nous montres un "NomArticle" avec un "NomPrenom" là
Ca doit pas être le bon formulaire
m
0
l
17 Décembre 2010 14:58:08

Ouais je sais J'ai post en 2 minutes sans trop vérifier ! haha mais regardez, jai refais un nouveau code et encore les mêmes erreurs...

formcat.php:
  1. $produit1 = $_POST['produit1'] ;
  2. $prix1 = $_POST['prix1'] ;
  3. $Quantite1 = $_POST['Quantite1'] ;
  4. $Sommaire1 = $_POST['Sommaire1'] ;


catalogue.html:
  1. <td>
  2. <label type="text" name="produit1" id="produit1" > article1 </label>
  3. <br/>
  4. <input type="text" name="prix1" id="prix1" value="20$/Chaque"/>
  5. </td>
  6. <td>
  7. Nombre désiré :
  8. <select name="Quantite1" id="Quantite1">
  9. <option value="0"> </option>
  10. <option value="1">1 </option>
  11. <option value="2">2 </option>
  12. <option value="3">3 </option>
  13. <option value="4">4 </option>
  14. <option value="5">5 </option>
  15. </select>
  16. </td>
  17. <td>
  18. Apercu du prix :
  19. <input type="text" readonly="readonly" size="4" value="" id="Sommaire1" name="Sommaire1"/>
  20. <br/><br/><br/>
  21. </td>


erreur :
Notice: Undefined index: produit1 in D:\EasyPHP5.2.10\www\site\formcat.php on line 23

Merci de m'aider ! :) 
m
0
l
a c 232 L Programmation
17 Décembre 2010 16:56:12

Déjà, c'est une "Notice", donc un message qui n'est pas important, tu peux les supprimer si tu as besoin (error_reporting).
Ensuite, ça veut dire que $_POST['produit1'] n'est pas défini quand tu as ouvert la page.
J'imagine que ton formulaire est la même page que ta page de traitement, du coup, la 1ère fois c'est pas défini. Ajoute une condition sur la validation du formulaire avant.
m
0
l
17 Décembre 2010 16:59:52

non ce n'est pas dans la meme page, mais je connais peu le php... comment je dois faire une validation ?!

Merci bcp !
m
0
l
a c 232 L Programmation
17 Décembre 2010 17:01:30

Avec isset par exemple
m
0
l
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