JeuWeb - Crée ton jeu par navigateur
htmlentites en utf8 : manque de doc dans la doc de php? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : htmlentites en utf8 : manque de doc dans la doc de php? (/showthread.php?tid=4859)

Pages : 1 2


RE: htmlentites en utf8 : manque de doc dans la doc de php? - php_addict - 01-06-2010

oulalala je crois que je vais galérer toute ma vie avec ces histoires d'encodage...
(01-06-2010, 11:38 AM)Sephi-Chan a écrit : Déjà, la première erreur, c'est d'altérer les données en entrée. Tu devrais entrer ce qu'on te donne comme on te le donne et utiliser un filtre à l'affichage.

donc si je comprends bien, meme si mon charset html, mes champs de bdd sont en ut8 (en fait si tout est en ut8) je ne dois pas faire de htmlentities($_POST['texte'], ENT_QUOTES, 'UTF-8') mais seulement htmlentities($_POST['texte'], ENT_QUOTES)?

je ne suis pas vraiement certain, je vais faire des tests et je pense que je re-solliciterais votre aide car les encodage c'est pas mon fort...

encore merci de m'avoir repondu si vite Wink


RE: htmlentites en utf8 : manque de doc dans la doc de php? - Sephi-Chan - 01-06-2010

Pour faire simple : ne te soucie pas de l'encodage, c'est géré pour toi dans chaque maillon de la chaîne. Si tu sers des pages prévues pour être rendues en UTF-8, et que ta base de données est aussi en UTF-8, tout se passera bien. Smile

Quand bien même un utilisateur t'enverra du texte (en ISO-8859-1 par exemple), tu auras au pire des cas des ©~ qui merdouillent. Mais rien de grave. Si ça t'embête, tu peux appliquer un utf8_encode sur les chaînes avant de les entrer en base de données. Mais rien de plus.

Les htmlentities (et assimilées) devrait être réservées à l'affichage, pour éviter les injections de codes (failles XSS et CSRF). Partout où tu affiches un contenu issu de la base, tu le passes à ce filtre.

Et tu pourras dire adieu aux soucis d'encodage. Smile


Sephi-Chan


RE: htmlentites en utf8 : manque de doc dans la doc de php? - php_addict - 01-06-2010

(01-06-2010, 12:18 PM)Sephi-Chan a écrit : Si ça t'embête, tu peux appliquer un utf8_encode sur les chaînes avant de les entrer en base de données. Mais rien de plus.

quand tu dis "tu peux" tu veux dire que c'est quai impératif non?

a bah voila, je sais pourquoi je faisais ca c'est pour le stockage en bdd

PS: désolé, les encodages c'est vraiement galère pour moi...


RE: htmlentites en utf8 : manque de doc dans la doc de php? - Sephi-Chan - 01-06-2010

Ben non, c'est pas grave si tu le fais pas. C'est juste que si un mec s'amuse à envoyer des données en ISO-8859-1 (et ça risque pas d'arriver souvent), ça peut faire moche avec des caractères accentués qui affichent des ©.


Sephi-Chan


RE: htmlentites en utf8 : manque de doc dans la doc de php? - php_addict - 01-06-2010

bon ben merci je vais marqué comme resolu alors...

je me demande vraiement pourquoi je faisais des htmlentities($_POST['texte'], ENT_QUOTES, 'UTF-8') alors :cogne:

encore merci !


RE: htmlentites en utf8 : manque de doc dans la doc de php? - Plume - 01-06-2010

En fait, dans le genre humain, on aime bien se prendre la tête, croire les choses plus compliquées qu'elles ne le sont,... L'appréhension quoi Smile Y a qu'à voir aussi la discussion sur les frameworks, sur la POO, sur les nouvelles méthodes de développements (Design Pattern, Analyse, ...), sur les méthodes de gestions de projets (SCRUM par exemple, XP, ...)

Les gens qui comme nous développent sont comme nous dans tous les sens du terme. Ils sont donc aussi fainéants. Ainsi faut pas croire qu'ils vont se faire chier à rendre les choses plus compliquées Tongue

Câlins ! Wink