[RESOLU][php]pb gestion des accents dans formulaire

pb gestion des accents dans formulaire [RESOLU][php] - PHP - Programmation

Marsh Posté le 12-11-2013 à 22:53:55    

Salut à tous  :bounce:  
 
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.

Code :
  1. <form autocomplete="off" target="_blank" method="post" name="formulaire" action="resultat.php">


 
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 :

Code :
  1. unable to decode value


 
Voilà. Du coup, je peux même pas convertirmes valeurs avec un htmlentities() vu qu'elles arrivent même pas dans mes variables POST  :pfff: .
 
Merci du coup demain  :jap:


Message édité par brutax le 13-11-2013 à 16:32:26
Reply

Marsh Posté le 12-11-2013 à 22:53:55   

Reply

Marsh Posté le 13-11-2013 à 14:57:26    

up ;-)

Reply

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?


Message édité par deejay59 le 13-11-2013 à 15:06:09
Reply

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.

Reply

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"


Message édité par brutax le 13-11-2013 à 15:22:33
Reply

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

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed