Se connecter avec
S'enregistrer | Connectez-vous

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

Dernière réponse : dans Programmation

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

Lassé par la pub ? Créez un compte
Expert Programmation

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

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

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 ?!

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 :) 
Expert Programmation

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.

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.

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
Expert Programmation

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

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.

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 ... ?

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 ! :) 
Expert Programmation

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.
Lassé par la pub ? Créez un compte
Tom's guide dans le monde