Problème d'accents dans un formulaire

matsydney -  
 kristof36 -
Bonjour à tous,

Je réalise actuellement un site web et j'aimerai intégrer un formulaire de contact!! Le problème est que je reçois parfaitement les mails mais dès qu'un accent est rentré par l'utilisateur mon message est coupé et je ne reçois pas la suite. vous comprenez que c'est assez génant.

Voici le code de ma page de traitement :

<?php

// Récupération des données transmises par POST
$Name = $_POST['Name'];
$Message = $_POST['Message'];
$Message .= "
$Name";

$Sujet = $_POST['Sujet'];
$Email = $_POST['Email'];

if($Name ==""){
// On verifie le nom
echo("The field name is empty !<br><br>
<a class='ex1' href='contactus.html'>Come back on the page contact us.</a>");
}
else{
if($Message ==""){
// On verifie le message
echo("The field message is empty !<br><br>
<a class='ex1' href='contactus.html'>Come back on the page contact us.</a>");
}
else{
// On verifie le sujet
if($Sujet ==""){
echo("The field subject is empty !<br><br>
<a class='ex1' href='contactus.html'>Come back on the page contact us.</a>");
}
else{
// On verifie l'email
if(($Email == "") || (!preg_match("!^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$!", $Email))){
echo("Invalid E-mail !<br><br>
<a class='ex1' href='contactus.html'>Come back on the page contact us.</a>");
}
else{
// si tout a été remplie, on envoi
mail("info@toileamatelas.com.au",$Sujet,$Message,"From: ".$Email);
echo("Votre message a bien été envoyé");
}
}
}
}
?>

Je vous remercie par avance si vous connaissez une astuce.

6 réponses

ilan27 Messages postés 395 Statut Membre 36
 
Aha! Il existe une fonction php pour ça! L'idée doit être là.
Essaye:

$Name = htmlentities($_POST['Name'], ENT_QUOTES);
$Message = htmlentities($_POST['Message'], ENT_QUOTES);
$Message .= "
$Name";

$Sujet = htmlentities($_POST['Sujet'], ENT_QUOTES);
$Email = htmlentities($_POST['Email'], ENT_QUOTES);
4
kristof36
 
Avec du retard mais je viens de me poser la me^me question que toi, j'ai trouvé la réponse ici:

https://codes-sources.commentcamarche.net/

Utilis la fonction utf8_decode() (ex: $c2=utf8_decode($c); )
1
ilan27 Messages postés 395 Statut Membre 36
 
Bonsoir, oui, c'est normal que les é soient transformé en &eacute; , c'est le but de la fonction: transformer, l'insérer dans la bdd ainsi, puis lorsqu'on l'affiche avec php, et qu'on ouvre la page, on revoit un é, car la manipulation par le navigateur est inverse.
0
Duche
 
Ca ne marche pas avec l'utf-8
Mes é sont convertis en & Atilde; & copy;
Y a-t-il un moyen d'y remédier ?
0

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

Posez votre question
Serge_La Messages postés 408 Statut Membre 47
 
Bonjour,
Ne pourrais-tu pas encoder les accents en html avec un javascript avant (ou même après) de l'envoyer dans ton php?
Par exemple, transformer é en &eacute;, etc.

Serge.
-1
matsydney
 
Bonjour,

Merci ilan27. J'arrive à récupérer les accents mais ils sont écrits n'importe comment : le é est transformé en é...

Auriez vous une idée??

Merci beaucoup.
-1