Page 1 sur 1

Présentation des informations retour de mail pour formulaire

Posté : 20 avr. 2011, 10:24
par Pernelle
Présentation des informations retour de mail pour formulaire

Bonjour!
Je débute dans le Php et j'ai avec grande peine réussi à faire fonctionner mon envoi du formulaire, Cependant il y a un détail qui me gène. lorsque je reçois par mail les informations sont présentées en ligne , comme ceci: Nom: Dupont Prénom: Pernelle Ville: Paris etc.
Afin que cela soit plus lisible je désire recevoir ces informations les unes sur les autres:
Exemple:
Nom: Dupont
Prénom: Pernelle
Ville: Paris

Merci de votre aide!

Voici le script php :

<?php
$statSentMsg="";
if(isset($_POST['Envoyer'])){
// Destination de message
$mailDestinataire = "[email protected]";
// Titre du message
$msgTitre = "Reservation chambre Pernelle";
// Suppression des balises html ou scripts malveillants
while(list($indice,$valeur)=each($_POST)){
${$indice}=strip_tags(trim($valeur));
}
// Création du message

$msgTexte="Reservation chambre Pernelle\n";
$msgTexte .= "Civilite : ".$Civilite."\n";
$msgTexte .= "Nom : ".$nom."\n";
$msgTexte .= "Prénom : ".$prenom."\n";
$msgTexte .= "Adresse : ".$adresse."\n";
$msgTexte .= "No.Postal : ".$nopostal."\n";
$msgTexte .= "Ville : ".$ville."\n";
$msgTexte .= "Téléphone : ".$telefone."\n";
$msgTexte .= "Email : ".$email."\n";
$msgTexte .= "Pays : ".$pays."\n";
$msgTexte .= "Date arrivée : ".$datearrivee."\n";
$msgTexte .= "Nbr nuits : ".$nbrenuits."\n";
$msgTexte .= "Nbr Personnes : ".$nbrePersonnes."\n";
$msgTexte .= "Commentaire : ".$commentaire."\n";
// Creation des entêtes
$headers ='From: "Chambre Pernelle"<'.$email.'>'."\n";
$headers .='Reply-To: '.$email."\n";
$headers .='Content-Type: text/html; charset="utf-8"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';

// prise en compte de l'accentuation
//Formatage du contenu

$msgTexte = stripslashes($msgTexte);
$msgTexte = htmlentities($msgTexte,ENT_QUOTES,'UTF-8');


// Envoi du message
if(mail($mailDestinataire, $msgTitre, stripslashes($msgTexte), $headers)) {


$statSentMsg="ok";
}else{
$statSentMsg="error";
}
}
?>
<?php if($statSentMsg=="ok"){ ?>

<div>
<center><font face="Verdana, Geneva, sans-serif" color="#009900" size="+1" >Votre demande à bien été envoyée...</font></center>
</div>
<?php }elseif($statSentMsg=="error"){ ?>
<div>
<center><font face="Verdana, Geneva, sans-serif" color="#FF0000" size="+1" >Une erreur est survenue lors de l'envoi de votre demande...</font></center>
</div>
<?php }else { ?>

Re: Présentation des informations retour de mail pour formulaire

Posté : 20 avr. 2011, 10:52
par Mazarini
Bonjour,

Dans le texte du message, remplace "\n" par "\r\n" (ou "\n\r" ?)

Re: Présentation des informations retour de mail pour formulaire

Posté : 20 avr. 2011, 11:03
par Pernelle
J'ai fait comme-ça et je reçois.: Reservation chambre Pernelle Civilite : Mr Nom : Dupont Prénom : Firmin Adresse : Route d'Oron 4 No.Postal : 1329 Ville : Paris Téléphone : 024-12345678 Email : [email protected] Pays : Suisse Date arrivée : 12.12.2011 Nbr nuits : 2 Nbr Personnes : 2 personnes Commentaire : Blablabla

$msgTexte="Reservation chambre Pernelle\n";
$msgTexte .= "Civilite : ".$Civilite."\r\n";
$msgTexte .= "Nom : ".$nom."\r\n";
$msgTexte .= "Prénom : ".$prenom."\r\n";
$msgTexte .= "Adresse : ".$adresse."\r\n";
$msgTexte .= "No.Postal : ".$nopostal."\r\n";
$msgTexte .= "Ville : ".$ville."\r\n";
$msgTexte .= "Téléphone : ".$telefone."\r\n";
$msgTexte .= "Email : ".$email."\r\n";
$msgTexte .= "Pays : ".$pays."\r\n";
$msgTexte .= "Date arrivée : ".$datearrivee."\r\n";
$msgTexte .= "Nbr nuits : ".$nbrenuits."\r\n";
$msgTexte .= "Nbr Personnes : ".$nbrePersonnes."\r\n";
$msgTexte .= "Commentaire : ".$commentaire."\r\n";
// Creation des entêtes
$headers ='From: "Chambre Pernelle"<'.$email.'>'."\n";
$headers .='Reply-To: '.$email."\n";
$headers .='Content-Type: text/html; charset="utf-8"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';

Re: Présentation des informations retour de mail pour formulaire

Posté : 20 avr. 2011, 11:24
par moogli
Vu que tu envoi un mail au format html le retour a la ligne c'est <br> (ou <br />).

Tu peux garder les retours existants pour le cas où l'on affiche le message en texte (d'ailleurs si avec ton butineur mail tu affiche le message en texte, la mise en page devrait t'aller ;) ).

@+

Re: Présentation des informations retour de mail pour formulaire

Posté : 20 avr. 2011, 13:45
par Mazarini
oops, pas fait attention au $headers .='Content-Type: text/html; charset="utf-8"'."\n";

Effectivement, des <br> devraient faire l'affaire.

Re: Présentation des informations retour de mail pour formulaire

Posté : 20 avr. 2011, 14:21
par Pernelle
Donc il faudrait faire comme ça.
y a t-il un autre moyen pour recevoir mes infos sur mail en tenant compte des accents et que mes infos soient bien les unes en dessous de autres . Merci!

$msgTexte="Reservation chambre Pernelle<br \>";
$msgTexte .= "Civilite : ".$Civilite."<br \>";
$msgTexte .= "Nom : ".$nom.<br \>";
$msgTexte .= "Prénom : ".$prenom."<br \>";
$msgTexte .= "Adresse : ".$adresse.<br \>";
$msgTexte .= "No.Postal : ".$nopostal.<br \>";
$msgTexte .= "Ville : ".$ville."<br \>";
$msgTexte .= "Téléphone : ".$telefone."<br \>";
$msgTexte .= "Email : ".$email."<br \>";
$msgTexte .= "Pays : ".$pays."<br \>";
$msgTexte .= "Date arrivée : ".$datearrivee."<br \>";
$msgTexte .= "Nbr nuits : ".$nbrenuits.<br \>";
$msgTexte .= "Nbr Personnes : ".$nbrePersonnes."<br \>";
$msgTexte .= "Commentaire : ".$commentaire."<br \>";
// Creation des entêtes
$headers ='From: "Chambre Pernelle"<'.$email.'>'."\n";
$headers .='Reply-To: '.$email."\n";
$headers .='Content-Type: text/html; charset="utf-8"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';

Re: Présentation des informations retour de mail pour formulaire

Posté : 20 avr. 2011, 14:59
par Mazarini
Bonjour,

1) <br> ou <br />, mais pas <br \>

2) cf fonction http://php.net/manual/fr/function.htmlentities.php pour les accents (à ne pas passer sur les <br>

Re: Présentation des informations retour de mail pour formulaire

Posté : 20 avr. 2011, 15:07
par Pernelle
<br> ou quoi ?

Re: Présentation des informations retour de mail pour formulaire

Posté : 20 avr. 2011, 15:17
par Pernelle
Reservation chambre Pernelle<br>Civilite : Mr<br>Nom : Dupont<br>Prénom : Firmin<br>Adresse : Route d'Oron4<br>No.Postal : 1329<br>Ville : Paris<br>Téléphone : 024-4531590<br>Email : [email protected]<br>Pays : Suisse<br>Date arrivée : 12.12.2011<br>Nbr nuits : 2<br>Nbr Personnes : 2 personnes<br>Commentaire : salutations<br>

Voilà ce que obtient avec <br>

Mon Script php

$msgTexte="Reservation chambre Pernelle<br>";
$msgTexte .= "Civilite : ".$Civilite."<br>";
$msgTexte .= "Nom : ".$nom."<br>";
$msgTexte .= "Prénom : ".$prenom."<br>";
$msgTexte .= "Adresse : ".$adresse."<br>";
$msgTexte .= "No.Postal : ".$nopostal."<br>";
$msgTexte .= "Ville : ".$ville."<br>";
$msgTexte .= "Téléphone : ".$telefone."<br>";
$msgTexte .= "Email : ".$email."<br>";
$msgTexte .= "Pays : ".$pays."<br>";
$msgTexte .= "Date arrivée : ".$datearrivee."<br>";
$msgTexte .= "Nbr nuits : ".$nbrenuits."<br>";
$msgTexte .= "Nbr Personnes : ".$nbrePersonnes."<br>";
$msgTexte .= "Commentaire : ".$commentaire."<br>";
// Creation des entêtes
$headers ='From: "Chambre Pernelle"<'.$email.'>'."\n";
$headers .='Reply-To: '.$email."\n";
$headers .='Content-Type: text/html; charset="utf-8"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';

Re: Présentation des informations retour de mail pour formulaire

Posté : 20 avr. 2011, 16:00
par Mazarini
Bonjour,

Est ce que tu veux un mail en html ou pas ?
Eventuellement, il faut une balise <html> et le reste pour vraiment avoir un mail au format HTML
Il y a un bon exemple de mail en HTML dans la doc : http://php.net/manual/en/function.mail.php

Re: Présentation des informations retour de mail pour formulaire

Posté : 20 avr. 2011, 16:20
par Pernelle
Comme je le présente plus haut , l'important pour moi est de recevoir par email les données du formulaire.
Qu'elles se présentent ainsi:
Nom: Dupont
Prénom: Pernelle
No postal: 00000
Ville: Paris
etc: bla bla
etc: bla bla

Et que tout les caractère accentués soient présents.

Actuellement le seul probème que je rencontre et que les données sont de ce type sur la même ligne donc pas facile à lire:
Reservation chambre Pernelle<br>Civilite : Mme<br>Nom : Dupont<br>Prénom : Josette<br>Adresse : Route d'Oron4<br>No.Postal : 1000<br>Ville : Mystère<br>Téléphone : 024-1234567<br>Email :

Voilà!

Re: Présentation des informations retour de mail pour formulaire

Posté : 21 avr. 2011, 06:40
par Pernelle
Bonjour!
Je suis toujours à la recherche de la solution...

Re: Présentation des informations retour de mail pour formulaire

Posté : 21 avr. 2011, 13:21
par Mazarini
Bonjour,

Essayes de remplacer text/html par text/plain et de mettre des \r\n en fin de ligne

Re: Présentation des informations retour de mail pour formulaire

Posté : 21 avr. 2011, 14:51
par Pernelle
J'ai exécuté:
$headers .='Content-Type: text/plain; charset="utf-8"'."\n";

Super mes info sont bien sur une colonne comme je le désire mais il y a un hic, j'ai le problème avec l'accentuation.
du style pour prénom j'ai Pr & e a c u t e ; nom

Re: Présentation des informations retour de mail pour formulaire

Posté : 21 avr. 2011, 15:57
par Mazarini
Bonjour,

A priori il ne faut pas faire de htmlentities sur le texte du message.

Par contre, tu peux aussi revenir au text/html. Mais il ne faut pas faire le htmlentities sur les <br> (qui remplace les "\r\n")

Je te propose de travailler sans envoyer de mail dans un premier temps en constituant une page dans ta variable $msgTexte et en remplacant la fonction mail par un echo $msgTexte.
Lorsque ta page sera au point tu pourras l'envoyer par mail au format HTML. Ca te permettra de faire une bonne présentation du message. N'utilise pas de fichier css et d'images à moins de vouloir te compliquer la vie.