Recupérer données d'un formulaire en php par mail

Fermé
angelcath - 16 nov. 2013 à 15:53
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 - 17 nov. 2013 à 13:26
Bonjour,
Impossible de trouver réponse à ma question par moi même.
Je n'y connais rien en php ni en langage de code.
J'ai créé un formulaire via dreamweaver.
Je souhaiterai récupérer ces informations par mail. Je n'arrive pas à configurer le fichier php pour la récupération des éléments par mail (fichier récupérer dans un tuto).
Je n'arrive pas à récupérer les informations des champs de formulaire dans le corps de mon mail reçu.
J'ai compris que c'était la balise $body="$nom"; qui m'affichait le nom dans le corps du message mais je ne sais comment faire pour avoir le reste des éléments du formulaire.
Merci beaucoup d'avance pour votre bonne volonté !!!!!!
Catherine


Je vous copie colle le code :
1/ du formulaire
<form action="recup-form.php" method="post" name="operation" id="operation" onsubmit="return ValidateForm()">
<table width="437" height="257" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>Nom :</td>
<td><input type="text" name="nom" size="45" maxlength="100" id="nom" /></td>
</tr>
<tr>
<td>Prénom :</td>
<td><input type="text" name="prenom" size="45" maxlength="100" id="prenom" /></td>
</tr>
<tr>
<td>Date de naissance (jour, mois, année) :</td>
<td><input type="text" name="naissance" size="45" maxlength="100" id="naissance" /></td>
</tr>
<tr>
<td>Adresse :</td>
<td><input type="text" name="adresse" size="45" maxlength="100" id="adresse" /></td>
</tr>
<tr>
<td>Code postal :</td>
<td><input type="text" name="codepostal" size="45" maxlength="100" id="codepostal" /></td>
</tr>
<tr>
<td>Ville :</td>
<td><input type="text" name="ville" size="45" maxlength="100" id="ville" /></td>
</tr>
<tr>
<td>Portable :</td>
<td><input type="text" name="portable" size="45" maxlength="100" id="portable" /></td>
</tr>
<tr>
<td>E-mail :</td>
<td><input type="text" name="email" size="45" maxlength="100" id="email" /></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="Submit" id="Submit" value="Envoyer" /></td>
</tr>
</table>
<br />
</form>
</body>
</html>

2/ du code php récupéré dans un tuto
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>

<body>
<?php
$nom=$HTTP_POST_VARS['nom'];
$prenom=$HTTP_POST_VARS['mail'];
$naissance=$HTTP_POST_VARS['objet'];
$ville=$HTTP_POST_VARS['message'];
/////voici la version Mine
$headers = "MIME-Version: 1.0\r\n";
//////ici on détermine le mail en format text
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
////ici on détermine l'expéditeur et l'adresse de réponse
$headers .= "From: $nom <$mail>\r\nReply-to : $nom <$mail>\nX-Mailer:PHP";
$subject="$objet";
$destinataire="***@***"; //remplacez "***@***" par votre adresse e-mail
$body="$nom";
if (mail($destinataire,$subject,$body,$headers)) {
echo "Votre mail a été envoyé<br>";
} else {
echo "Une erreur s'est produite";
}
?>
</body>
</html>

1 réponse

tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 219
17 nov. 2013 à 13:26
Salut,

Le mieux pour vous c'est de comprendre comment fonctionne l'envoie d'un mail par PHP.
Si je reprends les 2 premiers champ de votre formulaire, voici ce que ça donne :
<form action="recup-form.php" method="post" name="operation" id="operation"> 

<input type="text" name="nom" size="45" maxlength="100" id="nom" value="" /><br/>
<input type="text" name="prenom" size="45" maxlength="100" id="prenom" value="" /><br/>
<input type="submit" name="Submit" id="Submit" value="Envoyer" /><br/>
</form>

Chaque champ du formulaire possède un attribut "name" qui correspond au nom du champ et c'est ça qu'il faut utiliser/récupérer.
Si on prend le champ "nom" soit "name="nom"", on récupère la valeur de ce champ en utilisant la méthode "POST" soit "$_POST['nom']" que l'on place dans une variable de votre choix soit "$nom = $_POST['nom'];".
Voici ce que donnerait le code PHP pour ce formulaire :
	//si le formulaire de nom "Submit" a été validé

if(isset($_POST['Submit'])){
//on place les éléments du formulaire dans des variables
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
//on contrôle les éléments du formulaire
//si le champ nom est vide
if(empty($nom)){
echo 'Le champ Nom est vide !';
}
//si le champ prenom est vide
if(empty($prenom)){
echo 'Le champ Prénom est vide !';
}
//si tout est bon
else{
//Péparation du mail
//message
$msg = "Nom : ".$nom."<br/>Prénom : ".$prenom;
//entête du mail
$mailheaders = "From: $email\n";
$mailheaders .= "MIME-version: 1.0\n";
$mailheaders .= "Content-type: text/html; charset= utf-8\n";
//on envoi l'email
//si le mail est envoyé
if(mail('email du destinataire', 'Objet du mail', $msg, $mailheaders)){
echo 'Email envoyé.';
}
//si il y a une erreur lors de l'envoi
else{
echo 'Erreur, email non envoyé.';
}
}
}
5