Page 1 sur 1

Envoi d'un email par un formulaire de contact

Posté : 24 juil. 2007, 12:27
par nic563
Bonjour à tous,

Je rencontre un problème avec l'envoi d'un mail par l'intermédiaire d'un formulaire de contact sur mon site. Quand je reçois l'email, il est entièrement vide comme si mon code php n'allait pas rechercher les informations encodées dans le formulaire.

Voici le lien vers mon formulaire de contact: http://www.nic563.be/contact.html

Et voici le code PHP présent dans mon fichier "traitement.php":

Code : Tout sélectionner

<?php $adresse="[email protected]"; $from="From: $nom<$email>\r\n"; $from.="X-priority:3\n"; $texte="<html>"; $texte.="$texte"; $texte.="</html>"; $from.="MIME-Version: 1.0\r\n"; $from.="Content-Type: text/html"; if (mail($adresse,$sujet,$texte,$from)) echo("<center><font color=green><br><br><br><h2>Formulaire envoy&eacute; ! Je vous r&eacute;pondrai rapidement. Merci!</h2></font><br><a href=/>Cliquez ici pour revenir &agrave; l'accueil</a></center>"); else echo("<center><font color=red><br><br><br><h2>Probl&egrave;me &agrave; l'envoi du mail...d&eacute;sol&eacute; nous ne pouvons actuellement traiter votre demande</h2></font><br>Contactez nous plus <a href=\"mailto:$adresse\">classiquement</a>"); ?>
Merci d'avance à ceux qui pourront m'aider.

Nic

Posté : 24 juil. 2007, 15:43
par Ryle
Tu as quelques soucis dans le choix du nom de tes variables selon moi... :)
$texte ="<html>"; // tu définies une valeur à $texte
$texte.="$texte"; // tu complète $texte avec la valeur que tu lui a données ci dessus
$texte.="</html>"; // tu compète encore $texte
Au final, $texte ici est égal à "<html><html></html>" :)

Pour éviter cela, utilise les variables super globales pour récupérer les données de ton formulaire. Tu n'auras du coup pas non plus à te soucier de savoir si la directive register globals est active ou pas :)
$texte ="<html>"; 
$texte.= $_POST['texte'];
$texte.="</html>";
A noter qu'il manque les balises body pour que le code html soit correct :)

Posté : 24 juil. 2007, 15:44
par béka
Le problème doit venir de là :

Code : Tout sélectionner

$texte="<html>"; $texte.="$texte"; $texte.="</html>";

Posté : 24 juil. 2007, 17:00
par nic563
Super, tout fonctionne parfaitement grâce à vos précieux conseils !


Encore un tout grand merci !!!