Présentation des informations retour de mail pour formulaire

Petit nouveau ! | 8 Messages

20 avr. 2011, 10:24

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 { ?>
Modifié en dernier par Pernelle le 20 avr. 2011, 10:52, modifié 1 fois.

ViPHP
ViPHP | 2577 Messages

20 avr. 2011, 10:52

Bonjour,

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

Petit nouveau ! | 8 Messages

20 avr. 2011, 11:03

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';

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

20 avr. 2011, 11:24

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 ;) ).

@+
Il en faut peu pour être heureux ......

ViPHP
ViPHP | 2577 Messages

20 avr. 2011, 13:45

oops, pas fait attention au $headers .='Content-Type: text/html; charset="utf-8"'."\n";

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

Petit nouveau ! | 8 Messages

20 avr. 2011, 14:21

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';

ViPHP
ViPHP | 2577 Messages

20 avr. 2011, 14:59

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>

Petit nouveau ! | 8 Messages

20 avr. 2011, 15:07

<br> ou quoi ?

Petit nouveau ! | 8 Messages

20 avr. 2011, 15:17

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';

ViPHP
ViPHP | 2577 Messages

20 avr. 2011, 16:00

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

Petit nouveau ! | 8 Messages

20 avr. 2011, 16:20

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à!

Petit nouveau ! | 8 Messages

21 avr. 2011, 06:40

Bonjour!
Je suis toujours à la recherche de la solution...

ViPHP
ViPHP | 2577 Messages

21 avr. 2011, 13:21

Bonjour,

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

Petit nouveau ! | 8 Messages

21 avr. 2011, 14:51

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

ViPHP
ViPHP | 2577 Messages

21 avr. 2011, 15:57

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.