Se connecter avec
S'enregistrer | Connectez-vous

[PHP ]Balise HTML, htmlspecialchars et guillemets

Dernière réponse : dans Programmation

Bonjour à tous,

j'ai un petit problème avec un script qui me permet de créer une sorte de blog sur mon site.

L'utilisateur peut poster un titre, un texte et envoyer une photo.

Je viens de m'appercevoir que si l'utilisateur met de guillemets (") dans son texte, le script plante.

J'ai évidemment pensé à mettre un htmlspecialchars voir même un htmlentities et çà marche évidemment beaucoup mieux.

Mais mon soucis c'est que maintenant, comme dans ce texte il y a du BB-code (perso), la transformation en balise HTML (police, couleur, etc...) pour un aperçu ne focntionne plus car les balises sont aussi transformé en même temps avec le 'htmlspecialchars'.

par exemple le [br] est normalement transformé en
mais maintenant il est transformé en "&'q'u'o't';'&'l't';'b'r' '/'&'gt';'" (sans les ') donc la balise s'affiche dans l'aperçu et ne donne pas son résultat.

Je ne sais pas comment procéder pour résoudre ce problème.

Si quelqu'un pourrait me guider, ca serait super sympa.

Merci d'avance.
Lassé par la pub ? Créez un compte
Expert Programmation

Salut,

A quoi ça correspond ça : str_replace($remp_o, $remp_n, $original) ??

En fait, il faut que tu fasses un htmlentitie en premier, là tu le fais en dernier...
Car ta ligne c'est équivalent à :
  1. $body = str_replace($remp_o, $remp_n, $original);
  2. $body = stripslashes($body);
  3. $body = htmlentities($body);


Faut faire ton htmlentities avant ta transformation en BBCode
Lassé par la pub ? Créez un compte
Tom's guide dans le monde