Envoyer mon formulaire par mail

Fermé
Marc - Modifié par Chris 94 le 21/11/2011 à 02:45
imperf Messages postés 8 Date d'inscription dimanche 20 novembre 2011 Statut Membre Dernière intervention 27 avril 2015 - 21 nov. 2011 à 23:21
Bonjour,
J'ai fait un formulaire pour mon site mais je ne sais pas comment le recevoir par mail.
Voici un lien pour voir le résultat : http://cjoint.com/data3/3KutujUhzsn.htm


Voici mon formulaire:
 <FORM method=post action="cgi-bin/script.pl"> (ça, j'y est copier sur internet) 
Formulaire de réservation 
<TABLE BORDER=0> 
<TR> 
 <TD>Nom</TD> 
 <TD> 
 <INPUT type=text name="nom"> 
 </TD> 
</TR> 
<TR> 
 <TD>Prénom</TD> 
 <TD> 
 <INPUT type=text name="nom"> 
 </TD> 
</TR> 
<TR> 
 <TD>Adresse</TD> 
 <TD> 
 <INPUT type=text name="prenom"> 
 </TD> 
</TR> 
<TR> 
 <TD>E-Mail ou tel.</TD> 
 <TD> 
 <INPUT type=text name="nom"> 
 </TD> 
</TR> 
<TR> 
 <TD>Sexe</TD> 
 <TD> 
 Homme : <INPUT type=radio name="sexe" value="M"> 
 <br>Femme : <INPUT type=radio name="sexe" value="F"> 
 </TD> 
</TR> 

<TR> 
 <TD>Fonction</TD> 
 <TD> 
 <SELECT name="fonction"> 
  <OPTION VALUE="enseignant">Enseignant</OPTION> 
  <OPTION VALUE="etudiant">Etudiant</OPTION> 
  <OPTION VALUE="ingenieur">Ingénieur</OPTION> 
  <OPTION VALUE="retraite">Retraité</OPTION> 
  <OPTION VALUE="autre">Autre</OPTION> 
 </SELECT> 
 </TD> 
</TR> 
<TR> 
 <TD>Commentaires</TD> 
 <TD> 
 <TEXTAREA rows="1" name="Numéro de l'animal">Entrez le n°</TEXTAREA> 
 </TD> 
</TR> 

<TR> 
 <TD COLSPAN=2> 
 <INPUT type="submit" value="Envoyer"> 
 </TD> 
</TR> 
</TABLE> 
</FORM> 


Pouvez -vous me dire m'indiquez le code qui permet que lorsque l'on appuie sur "envoyer", je reçoive le formulaire par mail.
Merci d'avance
A voir également:

2 réponses

sam587 Messages postés 256 Date d'inscription dimanche 20 novembre 2011 Statut Membre Dernière intervention 28 janvier 2016 327
20 nov. 2011 à 19:29
bonjour,
Tu dois utiliser mailto.
0
Merci mais comment ???
0
imperf Messages postés 8 Date d'inscription dimanche 20 novembre 2011 Statut Membre Dernière intervention 27 avril 2015
Modifié par imperf le 21/11/2011 à 23:22
Bonjour! En fait, dans ton code, cette partie est "fausse". C'est le lien vers la page qui traitera l'envoi mais visiblement tu n'as pas son code.

action="cgi-bin/script.pl"


Quelques petites bases bancales mais qui t'aideront à comprendre:
Chacune des cases de ton formulaire se transforme en variable à l'envoi, dont le nom est le nom du champ (nom, prenom, etc), et la valeur ce que le visiteur aura rempli dedans.
Cela veut dire que si tu envoies ta page ...

<INPUT type=text name="nom">


Ce bout de code créera la variable $nom qui contiendra le nom tapé par ton client. (Sauf que déjà, dans ton formulaire, tu as plusieurs champs qui portent le même nom, ce qui rend le traitement impossible!) Une fois ce détail corrigé, passons au traitement des données. Je vais te donner une exemple hyper basique avec deux variables à envoyer par mail:

Tu as donc ta page du formulaire contenant deux champs nommés "nom" et "prenom". Voici le formulaire très simple, deux champs et un bouton valider:

<FORM method="POST" action="send.php">  
<input type="text" name="nom"></p> 
<input type="text" name="prenom"></p> 
<input type="submit" value="Valider"> 
</form> 


Le visiteur doit donc juste remplir nom, prenom et envoyer.
Tu remarqueras ici le "send.php". C'est le nom que j'ai donné à la page qui va traiter l'envoi. Et voici ce que "send.php" contiendra:

<?php 
$Destinataire = "BOITE MAIL QUI RECEVERA LE FORMU"; 
$Sujet = "NOM DU MAIL"; 

$From  = "From:EMAIL DU CLIENT\n"; 
$From .= "MIME-version: 1.0\n"; 
$From .= "Content-type: text/html; charset= iso-8859-1\n"; 

$Message = "Nom du client: $nom</p>Prénom du client: $prenom"; 
mail($Destinataire,$Sujet,$Message,$From); 
?>


Cette page envoyera à "BOITE MAIL QUI RECEVRA LE FORMU" (soit ton email) le contenu des champs du formulaire. "NOM DU MAIL" sera l'objet du mail, un nom fixe que tu choisiras ou le contenu d'un champ que le client peut remplir. Cela marche aussi avec "EMAIL DU CLIENT" qui pourait être un champ à remplir (et il y a plutôt intérêt ici), ajoute pour cela un champ email et mets à cet endroit $email.

La partie $Message comprend donc ce que tu recevras par mail à savoir $nom et $prenom. Cette partie est totalement formattable en html, mets-y des alinéas, couleurs etc, organise comme tu veux.

Voici donc les bases. Ajoute le nombre de champs que tu veux, pour afficher son contenu dans ton mail, prends son nom et affiche un dollar devant et comme par magie son contenu sera remplacé.

J'espère que ce n'est pas compliqué ^^" sinon, petit détail pour éviter ton site d'être piraté. Utilise cette ligne dans send.php juste avant $Destinataire pour sécuriser les champs:


$nom = htmlspecialchars($nom); 
$prenom = htmlspecialchars($prenom); 



Ce qui donnera:

<?php 
$nom = htmlspecialchars($nom); 
$prenom = htmlspecialchars($prenom); 


$Destinataire = "BOITE MAIL QUI RECEVERA LE FORMU"; 
$Sujet = "NOM DU MAIL"; 

$From  = "From:EMAIL DU CLIENT\n"; 
$From .= "MIME-version: 1.0\n"; 
$From .= "Content-type: text/html; charset= iso-8859-1\n"; 

$Message = "Nom du client: $nom</p>Prénom du client: $prenom"; 
mail($Destinataire,$Sujet,$Message,$From); 
?>


Et cela pour chacun des champs (ça évite aux visiteurs d'envoyer du html).

Et tout ce bordel dans le cas où ton serveur accepte le php ;)
0