Aller au contenu

Encodage des entitees HTML


Sujets conseillés

Posté (modifié)

Bonjour,

j'ai un formulaire ou les visiteurs peuvent entrer du code HTML telle que <b> ou <u>.

Lorsque j'affiche les donnees, j'utilise htmlentities() pour encoder les caracteres accenter telle que les accents.

Mais existe t'il un moyen pour que les balises ne soient pas encodees ?

Attention, si le visiteur tape < il faudrait bien que ce soit converti en <

Dans le meme registre, je me demande s'il est preferable d'enregistrer les donnees encodees ou si c'est mieux de les encoder uniquement lors de l'affichage.

Toutes idees lumineuses est la bienvenue :blush:

A+

Lolo

Modifié par destroyedlolo
Posté

La fonction htmlspecialchars me semble toute indiquée.

[Edit :]Woops, après relecture, il semble que ce n'est pas ça qui te convienne.

Je pense que seules des expressions régulières peuvent correspondre à ce que tu souhaites.

Sinon, pour ta seconde question, ça dépend de certains critères :

- Pour un site énormément fréquenté, et dont le serveur serait un peu "juste", c'est justifé de faire les modifs avant l'enregistrement.

Inconvénient : ça empêche l'édition des messages, et au fur et à mesure de l'évolution des features, les anciens messages ne sont pas mis à jour (c'est le cas des forums de jeuxvideos.com, par exemple).

- Pour un site dont le serveur serait correctement dimensionné, il vaut mieux laisser les entrées telles quelles dans la base : au fur et à mesure des améliorations des features, tous les messages seront affectés, et ils sont de plus tous modifiables.

Posté (modifié)

Bonjour,

il suffit d'utiliser du BBcode pour tes balises (<b> devient ) et de créer une fonction qui va parser ton BBcode à l'affichage, comme ces caractères ne sont pas affectés par htmlentities cela permet de conserver une possibilité d'édition. ;)

Modifié par xou

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...