Ca fonctionne bien pas encore !

Petit nouveau ! | 4 Messages

09 juin 2005, 08:20

Bonjour,

suite au sujet d'hier, j'ai essayé les modifs que l'on m'a proposé et cela ne fonctionne pas bien encore. C'est à dire que le mail est bien envoyé, mais il est vide, et dans la page récapitulative, j'ai bien le texte attendu mais l'un derrière l'autre (aucune phrase ne va à la ligne malgé les \n !).

Merci pour vos suggestions

le code :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<?php 
$nom=$HTTP_POST_VARS['nom'];
$prenom=$HTTP_POST_VARS['prenom'];
$mail=$HTTP_POST_VARS['mail'];
$NbAdulte=$HTTP_POST_VARS['NbAdulte'];
$NbEnfant1=$HTTP_POST_VARS['NbEnfant1'];
$NbEnfant2=$HTTP_POST_VARS['NbEnfant2'];
$Vin=$HTTP_POST_VARS['Vin'];
$Repas=$HTTP_POST_VARS['Repas'];
$Hotel=$HTTP_POST_VARS['Hotel'];

/////on met en forme le contenu du mail
$mailcontent = "Nom : ".$nom."\n"
."Prénom : ".$prenom."\n"
."email : ".$mail."\n"
."Nombre d'adulte : ".$NbAdulte."\n"
."Nombre d'enfants de moins de 12 ans : ".$NbEnfant1."\n"
."Nombre d'enfants de plus de 12 ans : ".$NbEnfant2."\n"
."Vin d'honneur : ".$Vin."\n"
."Repas : ".$Repas."\n"
."Vin d'honneur : ".$Vin."\n"
."Renseignements Hotel : ".$Hotel."\n";

/////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'expediteur et l'adresse de réponse 
$headers .= "From: $nom <$mail>\r\nReply-to : $nom <$mail>\nX-Mailer:PHP"; 
$subject="Réponse invitation"; 
$destinataire="[email protected]"; 

if (mail($destinataire,$subject,$mailcontent,$nom)) { 
echo "Merci, votre email a bien été envoyé\n";
echo "RECATITULATIF\n";
echo "Nom : ".$nom."\n";
echo "Prénom : ".$prenom."\n";
echo "Nombre d'adulte : ".$NbAdulte."\n";
echo "Nombre d'enfants de moins de 12 ans : ".$NbEnfant1."\n";
echo "Nombre d'enfants de plus de 12 ans : ".$NbEnfant2."\n";
echo "Participera au vin d'honneur : ".$Vin."\n";
echo "Participera au repas : ".$Repas."\n";
echo "Vin d'honneur : ".$Vin."\n";
echo "Souhaite des renseignements sur les hotels : ".$Hotel."\n";
} else {
echo "Une erreur s'est produite";
}
?> 

<html><head><title>Formulaire</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#D3A97E">
<input type="submit" name="submit" value="FIN">

</body>
</html>

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

09 juin 2005, 08:42

pour les retours à la ligne c'est normal, dans une page HTML ce sont des <br> qu'il faut utiliser

Mammouth du PHP | 19672 Messages

09 juin 2005, 08:48

Pour les retours de ligne, il te manque un <br> entre la fin de la ligne et le \n, si tu regarde la source, les retours de lignes sont bien là... dans le code source, mais rien ne l'indique pour l'affichage (<br>).

Pour l'envoi du mail, qu'il soit vide est moins normal, mais il reste une possibilité, quoique théoriquement ça fonctionne encore: tu utilises une forme obsolète de variable avec $HTTP_POST_VARS qui peut avantageusement être remplacée par $_POST tout court.

Enfin, tu as des headers qui se terminent par \n au lieu de \r\n

Fais les modifications et refais un essai, tu sera fixé.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 4 Messages

09 juin 2005, 09:12

Pour les retours à la ligne comme cela c'est mieux ?
if (mail($destinataire,$subject,$mailcontent,$nom)) { 
echo "Merci, votre email a bien été envoyé<br>\n";
echo "RECATITULATIF<br>\n";
echo "Nom : ".$nom."<br>\n";
echo "Prénom : ".$prenom."<br>\n";
echo "Nombre d'adulte : ".$NbAdulte."<br>\n";
echo "Nombre d'enfants de moins de 12 ans : ".$NbEnfant1."<br>\n";
echo "Nombre d'enfants de plus de 12 ans : ".$NbEnfant2."<br>\n";
echo "Participera au vin d'honneur : ".$Vin."<br>\n";
echo "Participera au repas : ".$Repas."<br>\n";
echo "Vin d'honneur : ".$Vin."<br>\n";
echo "Souhaite des renseignements sur les hotels : ".$Hotel."<br>\n";
} else {
echo "Une erreur s'est produite<br>\n";
}
?> 
En ce qui concerne l'envoie du mail je ne pourrai le tester que ce soir

merci

Mammouth du PHP | 19672 Messages

09 juin 2005, 09:15

Ta correction est OK.

Pour le reste, alors on attendra ce soir et tu nous raconteras
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 4 Messages

09 juin 2005, 21:31

Merci cela fonctionne dans l'ensemble !!
il reste juste des détails :

comment mettre du style au mots (en gras, justification)
et comment mettre un bouton retour à la page index.html.

merci

Mammouth du PHP | 19672 Messages

09 juin 2005, 21:39

Tu peux ajouter des balises html et en fait mettre ton message complet comme une page html ou quasiment, et dans l'entête, (<head>) tu peux mettre un style CSS. Pour la partie body, tu peux utiliser les balise normales html <p>, <h1> à <h6> etc... et appliquer un style dessus ensuite avec le style en en-tête.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: