Mail transmis depuis si avec problème accents

Fermé
Pernelle96 Messages postés 49 Date d'inscription mardi 28 octobre 2008 Statut Membre Dernière intervention 8 septembre 2014 - 18 avril 2011 à 17:34
marocoption Messages postés 17 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 15 octobre 2013 - 20 avril 2011 à 12:46
Bonjour,
J'ai un site avec un formulaire et les information me sont transmise sur mon adresse mail. Mais je rencontre le problème suivant:

Tous le caractères accentués sont remplacés par un petit losange qui contient un point d'interrogation.

ma page est en html et en php.

Merci


A voir également:

15 réponses

DoulyCreations Messages postés 187 Date d'inscription lundi 11 avril 2011 Statut Membre Dernière intervention 23 mars 2015 19
18 avril 2011 à 17:47
Salut,

Utilise la fonction : htmlentities($contenu_a_envoyer,ENT_QUOTES,'UTF-8') juste avant d'envoyer le mail.
0
Pernelle96 Messages postés 49 Date d'inscription mardi 28 octobre 2008 Statut Membre Dernière intervention 8 septembre 2014
18 avril 2011 à 18:22
Voilà mon php concernant mon formulaire. SVP place-moi la fontion.

J'ai souci de faire une bêtise et qu'ensuite plus rien ne fonctionne. Merci!

<?php
$statSentMsg="";
if(isset($_POST['Envoyer'])){
// Destination de message
$mailDestinataire = "adresse@blabla.com";
// 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éfone : ".$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/plain; charset="utf-8"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';
// Envoi du message
if(mail($mailDestinataire, $msgTitre, stripslashes($msgTexte), $headers)) {


$statSentMsg="ok";
}else{
$statSentMsg="error";
}
}
?>
<?php if($statSentMsg=="ok"){ ?>
0
DoulyCreations Messages postés 187 Date d'inscription lundi 11 avril 2011 Statut Membre Dernière intervention 23 mars 2015 19
18 avril 2011 à 18:32
Ok, voici le code complet:

<?php
$statSentMsg="";
if(isset($_POST['Envoyer'])){
// Destination de message
$mailDestinataire = "adresse@blabla.com";
// 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éfone : ".$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/plain; charset="utf-8"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';
//Formatage du contenu
$msgTexte = stripslashes($msgTexte);
$msgTexte = htmlentities($msgTexte,ENT_QUOTES,'UTF-8');
// Envoi du message
if(mail($mailDestinataire, $msgTitre, $msgTexte, $headers)) {


$statSentMsg="ok";
}else{
$statSentMsg="error";
}
}
?>
<?php if($statSentMsg=="ok"){ ?>
0
Pernelle96 Messages postés 49 Date d'inscription mardi 28 octobre 2008 Statut Membre Dernière intervention 8 septembre 2014
18 avril 2011 à 21:12
Voilà le résultat après la correction. Il y a bien un changement mais pas beaucoup mieux pour la lecture.

Merci encore de ton aide.

Reservation chambre Pernelle
Civilite : Mr
Nom :Blasblabla
Prénom : Paul ------------------ (au lieu de Prénom)
Adresse : Route d'Agiez 4 -------------(au lieu de Route d'Agiez)
No.Postal : 1329
Ville : Bretonnières ----------------(au lieu de Bretonnières)
Téléfone : 024-122145 ---------------(au lieu de téléphone)
Email : adresse@blabla.com
Pays : Suisse
Date arrivée : 12.12.2011 ------------------- (au lieu de Date arrivée)
Nbr nuits : 2
Nbr Personnes : 2 personnes
Commentaire : Salut
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Pernelle96 Messages postés 49 Date d'inscription mardi 28 octobre 2008 Statut Membre Dernière intervention 8 septembre 2014
18 avril 2011 à 21:39
les é sont remplacer par (é)
L'apostrophe par (')
les è par (è)
0
Pernelle96 Messages postés 49 Date d'inscription mardi 28 octobre 2008 Statut Membre Dernière intervention 8 septembre 2014
18 avril 2011 à 21:43
é par (& e a c u t e;)

' par (& # 0 3 9 ;)

etc...
0
DoulyCreations Messages postés 187 Date d'inscription lundi 11 avril 2011 Statut Membre Dernière intervention 23 mars 2015 19
18 avril 2011 à 21:58
Oui c'est justement le but de la fonction...
Le problème est donc dans le fait qu'il faut envoyer ton mail au format html. Pour cela il faut changer le Content-Type: text/plain; en Content-Type: text/html;
Je sais plus si l'on doit changer autre chose suite à cela mis à part changer les \n en <br />
0
Pernelle96 Messages postés 49 Date d'inscription mardi 28 octobre 2008 Statut Membre Dernière intervention 8 septembre 2014
18 avril 2011 à 22:22
Ok! ça marge maintenant pour les accents.

Par contre tout est est écrit en ligne et non l'un sous l'autre.

Il faudrait donc changer comme ceci chaque $msgTexte
par exemple:
$msgTexte="Reservation chambre Pernelle\n";

par:
$msgTexte="Reservation chambre Pernelle<br />";
0
DoulyCreations Messages postés 187 Date d'inscription lundi 11 avril 2011 Statut Membre Dernière intervention 23 mars 2015 19
Modifié par DoulyCreations le 19/04/2011 à 13:44
Tout à fait :)

<?php  
$statSentMsg="";  
if(isset($_POST['Envoyer'])){  
// Destination de message  
$mailDestinataire = "adresse@blabla.com";  
// 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<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.'>'."<br />";  
$headers .='Reply-To: '.$email."<br />";  
$headers .='Content-Type: text/html; charset="utf-8"'."<br />";  
$headers .='Content-Transfer-Encoding: 8bit';  
//Formatage du contenu  
$msgTexte = stripslashes($msgTexte);  
$msgTexte = htmlentities($msgTexte,ENT_QUOTES,'UTF-8');  
// Envoi du message  
if(mail($mailDestinataire, $msgTitre, $msgTexte, $headers)) {  


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

Quand on veut on peut ! Ou pas ...
0
Pernelle96 Messages postés 49 Date d'inscription mardi 28 octobre 2008 Statut Membre Dernière intervention 8 septembre 2014
Modifié par Pernelle96 le 19/04/2011 à 16:38
Bonjour!
J'ai bien placer "<br />" mais le formulaire génère une erreur et ne part pas. J'ai donc mis à nouveau les "\n" et tout fonctionne, mis à part les informations paraissent à la suite les unes des autres plutôt que les unes sous les autres, donc plus difficile à lire.
0
Pernelle96 Messages postés 49 Date d'inscription mardi 28 octobre 2008 Statut Membre Dernière intervention 8 septembre 2014
19 avril 2011 à 18:52
Bonsoir!
Je relance le débat, car je pense que la solution est très proche. Merci pour ce dernier effort.
0
DoulyCreations Messages postés 187 Date d'inscription lundi 11 avril 2011 Statut Membre Dernière intervention 23 mars 2015 19
Modifié par DoulyCreations le 19/04/2011 à 19:20
Bonsoir,
Tu as bien vérifié que le Content-Type: text/html ?
Ensuite tu avais une faute d'ortographe à Téléphone (C'est juste un détail).
Sinon je me suis trompé pour l'entête il ne faut pas mettre des <br /> :)

Voici le code au complet j'espère :

<?php   
$statSentMsg="";   
if(isset($_POST['Envoyer'])){   
// Destination de message   
$mailDestinataire = "adresse@blabla.com";   
// 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<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';   
//Formatage du contenu   
$msgTexte = stripslashes($msgTexte);   
$msgTexte = htmlentities($msgTexte,ENT_QUOTES,'UTF-8');   
// Envoi du message   
if(mail($mailDestinataire, $msgTitre, $msgTexte, $headers)) {   


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


Quand on veut on peut ! Ou pas ...
0
Pernelle96 Messages postés 49 Date d'inscription mardi 28 octobre 2008 Statut Membre Dernière intervention 8 septembre 2014
19 avril 2011 à 19:55
maintenant l'envoi se passe bien, mais le mail que je reçois et comme ça:

Reservation chambre Pernelle<br />Civilite : Mme<br />Nom : Savoy<br />Prénom : Josette<br />Adresse : Route d'Agiez 4<br />No.Postal : 1329<br />Ville : Bretonnières<br />Téléphone : 024-4531590<br />Email : josavoy@1329.ch<br />Pays : Suisse<br />Date arrivée : 12.12.2011<br />Nbr nuits : 2<br />Nbr Personnes : 2 personnes<br />Commentaire : asd<br />
0
hesa2020 Messages postés 15 Date d'inscription samedi 2 avril 2011 Statut Membre Dernière intervention 28 juillet 2011 2
Modifié par hesa2020 le 20/04/2011 à 03:17
Essaye avec br2nl()
Sa devrai remplacer tout les <br> & <br /> par une nouvelle ligne
... br2nl = br to new line
exemple :
if(mail($mailDestinataire, $msgTitre, br2nl($msgTexte), $headers)) {
.........
........
.......
Mon Site Internet : http://www.hesatuto.tk
ma chaine youtube : https://www.youtube.com/user/HesaTuto
0
marocoption Messages postés 17 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 15 octobre 2013 11
20 avril 2011 à 12:46
Essai phpmailer c'est plus pratique



0