Posez votre question Signaler

Problème d'accents dans un formulaire

matsydney - Dernière réponse le 11 févr. 2009 à 16:59
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.
Lire la suite 

Problème d'accents dans un formulaire »

6 réponses
Réponse
+4
moins plus
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);
Ajouter un commentaire
Réponse
+1
moins plus
Avec du retard mais je viens de me poser la me^me question que toi, j'ai trouvé la réponse ici:

http://www.phpcs.com/...

Utilis la fonction utf8_decode() (ex: $c2=utf8_decode($c); )
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
Ca ne marche pas avec l'utf-8
Mes é sont convertis en & Atilde; & copy;
Y a-t-il un moyen d'y remédier ?
Ajouter un commentaire
Réponse
-1
moins plus
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.
Ajouter un commentaire
Réponse
-1
moins plus
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.
Ajouter un commentaire
Ce document intitulé « Problème d'accents dans un formulaire » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?