pb gestion des accents dans formulaire [RESOLU][php] - PHP - Programmation
Marsh Posté le 13-11-2013 à 15:04:48
Vérifies l'encodage de tes fichiers, pour éviter tout problème avec les caractères accentués priviligie l'UTF8.
Il manque uniquement le caractère accentué ou toute la chaine est vide?
Marsh Posté le 13-11-2013 à 15:18:35
C'est un problème classique, mais il manque des informations sur ce qui se passe avant "unable to decode value", car il peut y avoir plusieurs cas différents.
D'une manière générales, les solutions sont d'utiliser l'une et/ou l'autre des fonctions rawurldecode(), stripslashes(), eregi_replace(), trim().
Il faut aussi se méfier des apostrophes, des guillemets, des slashs, des espaces, et des caractères non imprimables.
Marsh Posté le 13-11-2013 à 15:19:54
En fait, toute la chaine est vide dès qu'il y a le moindre petit accent dedans...
Mes pages sont encodées en ISO-8859-1
Si je les passes en UTF8, j'ai peur d'avoir des soucis dans le reste de mon site web :-/
Par contre, en cherchant un peu, j'ai vu qu'il y a un attribut ACCEPT-CHARSET pour les balises form.
Je vais tester ça
edit : les apostrophes, slashs, virgules et tout passent sans problèmes. C'est vraiment les éèàâ... qui posent problème.
Vu que mes variables ne sont même pas présentes dans les $_POST[], je peux même pas y passer les rawurldecode(), stripslashes(), eregi_replace(), trim().
Je regarderai ce soir ce qu'il y a avant les "unable to decode value"
Marsh Posté le 13-11-2013 à 16:32:06
C'est OK !
J'ai rajouté ces attributs dans ma balise form
ACCEPT-CHARSET="utf-8"
lang="fr"
je sais pas si le deuxième apporte quelque chose mais bon, ça mange pas de pain de le laisser.
a+, merci
Marsh Posté le 12-11-2013 à 22:53:55
Salut à tous
Je suis en train d'écrire un formulaire. Celui ci pointe vers une autre page, et j'ai ajouté target="_blank" comme attribut dans la balise <form>. J'utilise la méthode POST.
Quand j'arrive sur ma page resultat.php, j'affiche les variables contenues dans les champs de type "text" et là, surprise : tous les champs qui avaient des valeurs accentuées sont vides.
Je jette donc un oeil aux en-têtes HTTP via les outil de chrome, et je remarque que les variables $_POST correspondant aux champs qui ont des caractères accentués sont marqués :
Voilà. Du coup, je peux même pas convertirmes valeurs avec un htmlentities() vu qu'elles arrivent même pas dans mes variables POST .
Merci du coup demain
Message édité par brutax le 13-11-2013 à 16:32:26