Mail transmis depuis si avec problème accents

Pernelle96 Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   -  
marocoption Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   19
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   19
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
les é sont remplacer par (é)
L'apostrophe par (')
les è par (è)
0
Pernelle96 Messages postés 49 Date d'inscription   Statut Membre Dernière intervention  
 
é par (& e a c u t e;)

' par (& # 0 3 9 ;)

etc...
0
DoulyCreations Messages postés 187 Date d'inscription   Statut Membre Dernière intervention   19
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   19
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   19
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   2
 
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   Statut Membre Dernière intervention   11
 
Essai phpmailer c'est plus pratique



0