Auteur Sujet: [RESOLU] HTMLENTITIES et accent !  (Lu 10677 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Lebanner

  • Habitué
  • **
  • Messages: 124
    • Spartan Fight
[RESOLU] HTMLENTITIES et accent !
« le: 22 octobre 2008 à 20:35:42 »
Salut,

J'ai un formulaire et mes zones du formulaire sont traitées dans une page de traitement ou chaque zone reçoit la fonction HTMLENTITIES afin d'empêcher tout execution de code html.

J'ai mis ça en place récemment mais désormais si je met "Décision" cela me met dans la BD "Décision".

Apparement mon problème de "é" vient du fait que je passe la fonction htmlentities à ma zone de formulaire et à cause d'un problème de codage MySQL interprète cela en é ....

Actuellement j'ai ça :
$Facon=addslashes(htmlentities($_POST["Facon"]));
Si je met ça :
$Facon=addslashes(htmlentities(utf8_decode($_POST["Facon"])));
Est ce que ça va être bon ??

Merci d'avance
« Modifié: 02 janvier 2009 à 15:11:46 par Lebanner »

Hors ligne Just

  • Expert
  • ****
  • Messages: 924
    • AiN-IRC LE portail du 01 [Ain]!
Re : HTMLENTITIES et accent !
« Réponse #1 le: 23 octobre 2008 à 10:11:24 »
Salut,

Comme dit dans l'autre topic c'ets ta fonction htmlentities() (http://www.php.net/manual/fr/function.htmlentities.php) qui transforme tes "é" en "é".
En théorie cela ne gène pas à l'affichage.
Veille à désactiver aussi les "magic quotes" qui ne servent pas à grand choses... si ce n'est à couvrir les amateurs qui ne souhaitent pas trop s'investir [ce n'est en mon sens pas la bonne manière de faire ^^].
Pour ce faire il te faut un HTACCESS comportanat ces lignes :
php_flag magic_quotes_gpc Off
php_flag magic_quotes_runtime Off
php_flag magic_quotes_sybase Off

A l'affichage dans un navigateur le "é" est normalement interprété en "é" si tu es en encodage "ISO-8859-1".

Sinon tu as la fonction inverse de "htmlentities()" qui est "html_entity_decode()" (http://www.php.net/manual/fr/function.html-entity-decode.php) mais cela ne semble aps correspondre à ta demande.
En revanche si tu ne souhaites encoder QUE les balises HTML pour éviter leur exploitation tu peux utiliser "htmlspecialchars()" (http://www.php.net/manual/fr/function.htmlspecialchars.php).

En espérant que cela t'aide.
Just OnMyOwn ... :B
"Be CoOl, KeEp CoOl, HaVe FuN!"
-
http://www.ain-irc.net/
http://www.funpart.net/

Hors ligne Lebanner

  • Habitué
  • **
  • Messages: 124
    • Spartan Fight
Re : HTMLENTITIES et accent !
« Réponse #2 le: 24 octobre 2008 à 17:03:35 »
En fait à l'affichage nikel, mais le problème et qu'après je fais une requete qui dit :
select * from matable where truc like '%décision%' et c'est là que ça merde !

Je crois que je vais opter pour :
select * from matable where truc like '%décision%' or truc like '%décision%'

Merci de tes éléments de réponse

Hors ligne Just

  • Expert
  • ****
  • Messages: 924
    • AiN-IRC LE portail du 01 [Ain]!
Re : HTMLENTITIES et accent !
« Réponse #3 le: 24 octobre 2008 à 17:38:59 »
Salut,

Oui il te faut traiter tes chaines de caractères avec htmlentities au préalable.

Bon courage.
Just OnMyOwn ... :B
"Be CoOl, KeEp CoOl, HaVe FuN!"
-
http://www.ain-irc.net/
http://www.funpart.net/