J'ai l'impression que tu galère pas mal

Il serait intéressant (obligatoire ?) de lire quelques tuto de base sur le php, il y en a plein le site et le forum de phpfrance, il y aussi beaucoup d'autres sites qui le font.
Enfin bon, je suis sympa aujourd'hui c'est cadeaux
Voila le code PHP de ta page d'envoi de mail, il y a juste à remplacer toute ta page d'envoi de mail par celle-ci :
MAIS je le répète, faire un copier-coller c'est mal, il serait plus judicieux que tu comprenne le code que tu utilise, un petit rigolo pourrait mettre des trucs pas sympa dedans et tu pourrais ne pas t'en rendre compte, donc au final je sais pas si c'est sympa de ma part de te fournir le travail déjà fait
<?php
//On vérifie s'il faut traiter le formulaire
if (isset($_POST['Nom']) && !empty($_POST['Nom']))
{
//On vérifie que tous les champs ont étaient remplis
if (isset($_POST['Entreprise']) && !empty($_POST['Entreprise'])
&& isset($_POST['Email']) && !empty($_POST['Email'])
&& isset($_POST['Téléphone']) && !empty($_POST['Téléphone'])
&& isset($_POST['nombre']) && !empty($_POST['nombre'])
&& isset($_POST['Nombre_encart']) && !empty($_POST['Nombre_encart']))
{
//On vérifie que l'email du contact est un email valide
if (filter_var($_POST['Email'],FILTER_VALIDATE_EMAIL))
{
//Si tous les champs ont étaient remplis on met ces valeurs dans des variables,
//et on pense à les sécuriser !!!
$nom = htmlspecialchars(substr($_POST['Nom'],0,300));
$entreprise = htmlspecialchars(substr($_POST['Entreprise'],0,300));
$email = htmlspecialchars(substr($_POST['Email'],0,300));
$telephone = htmlspecialchars(substr($_POST['Téléphone'],0,300));
$settable = htmlspecialchars(substr($_POST['nombre'],0,300));
$nbencart = htmlspecialchars(substr($_POST['Nombre_encart'],0,300));
//Adresse mail du receveur
$to = "[email protected]";
//On rédige l'email avec les valeurs du formulaire
$msg_mail = "Formulaire envoyé par le site internet :
Nom : $nom
Entreprise : $entreprise
Email : $email
Téléphone : $telephone
Nombre d'exemplaire de set de table complet : $settable
Nombre d'encart de 10x9 cm : $nbencart
";
//On renseigne les headers du mail
$headers = "From: Devis Placemat<[email protected]>"."\n";
$headers .= "Reply-to: [email protected]"."\n";
$headers .= "Content-type: text/html; charset=utf-8"."\n";
$headers .= "Content-Transfer-Encoding: 8bit"."\n";
if (@mail($to,'Devis Site',nl2br($msg_mail),$headers))
{
$title = "Message envoyé";
$msg = "<h1>Message envoyé</h1><br />\n";
$msg .= '<a href="/">Retour à l\'accueil</a>';
}
else
{
$title = "Erreur d'envoi";
$msg = "<h1>Impossible d'envoyer le formulaire</h1><br />\n";
$msg .= "<h3>Veuillez nous excuser pour la gêne occasionnée</h3><br />\n";
$msg .= '<a href="javascript:history.go(-1)">Retour au formulaire</a>';
}
}
else
{
$title = "Erreur dans le formulaire";
$msg = "<h1>Votre Email n'est pas valide</h1><br />\n";
$msg .= '<a href="javascript:history.go(-1)">Retour au formulaire</a>';
}
}
else
{
$title = "Erreur dans le formulaire";
$msg = "<h1>Pensez à bien remplir tous les champs du formulaire !</h1><br />\n";
$msg .= '<a href="javascript:history.go(-1)">Retour au formulaire</a>';
}
}
//Si l'utilsateur arrive sur cette page sans avoir cliqué sur le bouton envoi alors on redirige vers la page du formulaire
else
{
header('Location: formulaire.html');
exit;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="fr" />
<title><?php if (isset($title)) echo $title; ?></title>
</head>
<body>
<?php
if (isset($msg)) echo $msg;
?>
</body>
</html>
Autre chose, dans ta page du formulaire, pour ton
<select> avec le nombre de set de table, au lieu de mettre 10,20,50 met plutôt 10000, 20000,50000 !
Ta valeur Téléphone dans ta page de formulaire, tu as enlevé les accents ? Car dans ton dernier poste tu mets $_POST['Telephone'], si oui, dans le code que j'ai mis pense aussi à le remodifier !
Ce que tu as fait à la fin n'est pas trop mal, faut bien penser à faire un htmlspecialchars à tous tes $_POST.
Ensuite l'autre problème c'est que la fonction mail() ne s'utilise pas comme ca.
mail(ADRESSE DESTINATAIRE, SUJET DU MAIL, MESSAGE DU MAIL, EN-TETE);
en clair, avec des variables
mail($to, $subject, $message, $headers);
Le problème venait du fait que tu mettais les variables $nom, $entreprise etc, dans la fonction mail, il faudrait plutôt faire comme j'ai fais dans le code au dessus, c'est à dire faire une variable $message et dedans lui passer toutes les autres variables.
J'ai l'impression que tu galère pas mal :D
Il serait intéressant (obligatoire ?) de lire quelques tuto de base sur le php, il y en a plein le site et le forum de phpfrance, il y aussi beaucoup d'autres sites qui le font.
Enfin bon, je suis sympa aujourd'hui c'est cadeaux :mrgreen:
Voila le code PHP de ta page d'envoi de mail, il y a juste à remplacer toute ta page d'envoi de mail par celle-ci :
MAIS je le répète, faire un copier-coller c'est mal, il serait plus judicieux que tu comprenne le code que tu utilise, un petit rigolo pourrait mettre des trucs pas sympa dedans et tu pourrais ne pas t'en rendre compte, donc au final je sais pas si c'est sympa de ma part de te fournir le travail déjà fait :P
[php]
<?php
//On vérifie s'il faut traiter le formulaire
if (isset($_POST['Nom']) && !empty($_POST['Nom']))
{
//On vérifie que tous les champs ont étaient remplis
if (isset($_POST['Entreprise']) && !empty($_POST['Entreprise'])
&& isset($_POST['Email']) && !empty($_POST['Email'])
&& isset($_POST['Téléphone']) && !empty($_POST['Téléphone'])
&& isset($_POST['nombre']) && !empty($_POST['nombre'])
&& isset($_POST['Nombre_encart']) && !empty($_POST['Nombre_encart']))
{
//On vérifie que l'email du contact est un email valide
if (filter_var($_POST['Email'],FILTER_VALIDATE_EMAIL))
{
//Si tous les champs ont étaient remplis on met ces valeurs dans des variables,
//et on pense à les sécuriser !!!
$nom = htmlspecialchars(substr($_POST['Nom'],0,300));
$entreprise = htmlspecialchars(substr($_POST['Entreprise'],0,300));
$email = htmlspecialchars(substr($_POST['Email'],0,300));
$telephone = htmlspecialchars(substr($_POST['Téléphone'],0,300));
$settable = htmlspecialchars(substr($_POST['nombre'],0,300));
$nbencart = htmlspecialchars(substr($_POST['Nombre_encart'],0,300));
//Adresse mail du receveur
$to = "
[email protected]";
//On rédige l'email avec les valeurs du formulaire
$msg_mail = "Formulaire envoyé par le site internet :
Nom : $nom
Entreprise : $entreprise
Email : $email
Téléphone : $telephone
Nombre d'exemplaire de set de table complet : $settable
Nombre d'encart de 10x9 cm : $nbencart
";
//On renseigne les headers du mail
$headers = "From: Devis Placemat<
[email protected]>"."\n";
$headers .= "Reply-to:
[email protected]"."\n";
$headers .= "Content-type: text/html; charset=utf-8"."\n";
$headers .= "Content-Transfer-Encoding: 8bit"."\n";
if (@mail($to,'Devis Site',nl2br($msg_mail),$headers))
{
$title = "Message envoyé";
$msg = "<h1>Message envoyé</h1><br />\n";
$msg .= '<a href="/">Retour à l\'accueil</a>';
}
else
{
$title = "Erreur d'envoi";
$msg = "<h1>Impossible d'envoyer le formulaire</h1><br />\n";
$msg .= "<h3>Veuillez nous excuser pour la gêne occasionnée</h3><br />\n";
$msg .= '<a href="javascript:history.go(-1)">Retour au formulaire</a>';
}
}
else
{
$title = "Erreur dans le formulaire";
$msg = "<h1>Votre Email n'est pas valide</h1><br />\n";
$msg .= '<a href="javascript:history.go(-1)">Retour au formulaire</a>';
}
}
else
{
$title = "Erreur dans le formulaire";
$msg = "<h1>Pensez à bien remplir tous les champs du formulaire !</h1><br />\n";
$msg .= '<a href="javascript:history.go(-1)">Retour au formulaire</a>';
}
}
//Si l'utilsateur arrive sur cette page sans avoir cliqué sur le bouton envoi alors on redirige vers la page du formulaire
else
{
header('Location: formulaire.html');
exit;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="fr" />
<title><?php if (isset($title)) echo $title; ?></title>
</head>
<body>
<?php
if (isset($msg)) echo $msg;
?>
</body>
</html>
[/php]
Autre chose, dans ta page du formulaire, pour ton [b]<select>[/b] avec le nombre de set de table, au lieu de mettre 10,20,50 met plutôt 10000, 20000,50000 !
Ta valeur Téléphone dans ta page de formulaire, tu as enlevé les accents ? Car dans ton dernier poste tu mets $_POST['Telephone'], si oui, dans le code que j'ai mis pense aussi à le remodifier !
Ce que tu as fait à la fin n'est pas trop mal, faut bien penser à faire un htmlspecialchars à tous tes $_POST.
Ensuite l'autre problème c'est que la fonction mail() ne s'utilise pas comme ca.
[php]
mail(ADRESSE DESTINATAIRE, SUJET DU MAIL, MESSAGE DU MAIL, EN-TETE);
en clair, avec des variables
mail($to, $subject, $message, $headers);
[/php]
Le problème venait du fait que tu mettais les variables $nom, $entreprise etc, dans la fonction mail, il faudrait plutôt faire comme j'ai fais dans le code au dessus, c'est à dire faire une variable $message et dedans lui passer toutes les autres variables.