Bonjour,
Voilà plusieurs longues minutes que je m'arrache les cheveux sur l'envoi par mail des données d'un formulaire. J'ai utilisé le tuto (très très bien fait merci) sur l'envoi des données via formulaire mais j'ai quelques soucis.
En gros, la vérification marche à merveille (sauf pour les listes déroulantes qu'il considère toujours OK puisqu'il y a toujours une valeur par défaut mais ça c'est rien), je reçois le mail mais il est quasiment vide ... Je n'ai qu'un label ("Mode de Paiement :") avec rien derrière ou à la rigueur la première lettre du label de la première case à cocher.
Tout le reste, listes, champs texte, rien n'apparaît. J'ai dû faire une erreur mais je ne sais pas du tout où ... J'ai identifié la ligne du tuto faisant mention de $index et $valeur parce que je ne sais pas réellement à quoi elles font référence ...
Mon code :
<?php
//Définition variables
$msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>";
$msg_ok = "Votre demande a bien été prise en compte.";
$message = $msg_erreur;
//Destinataire
define('MAIL_DESTINATAIRE','xxx@xxx.xx');
define('MAIL_SUJET','Demande de publication Petites Annonces CE SISTM');
//Vérification champs
if (empty($_POST['Nom']))
$message .= "Nom<br/>";
if (empty($_POST['Prenom']))
$message .= "Prénom<br/>";
if (empty($_POST['Secteur']))
$message .= "Secteur<br/>";
if (empty($_POST['Centre']))
$message .= "Centre<br/>";
if (empty($_POST['Rubrique']))
$message .= "Rubrique<br/>";
if (empty($_POST['Intitule']))
$message .= "Intitulé de l'objet<br/>";
if (empty($_POST['Description']))
$message .= "Description de l'objet<br/>";
if (empty($_POST['Etat']))
$message .= "Etat de l'objet<br/>";
if (empty($_POST['Prix']))
$message .= "Prix<br/>";
//Message d'Erreur si un champ est vide
if (strlen($message) > strlen($msg_erreur)) {
echo $message;
}
//Sinon poursuite du code
else {
foreach($_POST as $index => $valeur) {
$$index = stripslashes(trim($valeur));
}
//Concaténation champ Paiement
$Paiement = $_POST['Paiement'];
$sqlPaiement = '';
for ($i=0; $i<count($Paiement); $i++)
{
$sqlPaiement .= $Paiement[$i];
$sqlPaiement .= ', ';
}
//Concaténation champ Livraison
$Livraison = $_POST['Livraison'];
$sqlLivraison = '';
for ($i=0; $i<count($Livraison); $i++)
{
$sqlLivraison .= $Livraison[$i];
$sqlLivraison .= ', ';
}
//Préparation de l'entête du mail
$mail_entete = "MIME-Version: 1.0\r\n";
$mail_entete .= "From: {$_POST['Nom']} ";
$mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
$mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
$mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n";
//Préparation du corps du mail
$mail_corps = "Nom : $Nom\n";
$mail_corps = "Prénom : $Prenom\n";
$mail_corps = "Secteur-Centre : $Secteur, $Centre\n";
$mail_corps = "Rubrique : $Rubrique\n";
$mail_corps = "Intitulé de l'objet : $Intitule\n";
$mail_corps = "Description : $Description\n";
$mail_corps = "Etat : $Etat\n";
$mail_corps = "Prix : $Prix\n";
$mail_corps = "Moyen de Paiement : $sqlPaiement\n\n\n";
$mail_corps = "Mode de Livraison : $sqlLivraison\n\n\n";
// envoi du mail
if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete)) {
//Le mail est bien expédié
echo $msg_ok;
} else {
//Le mail n'a pas été expédié
echo 'Une erreur est survenue lors de l\'envoi du formulaire par email';
}
}
?>
Merci pour votre aide
