Tom's Guide > Forum > Programmation > [PHP ]Balise HTML, htmlspecialchars et guillemets

[PHP ]Balise HTML, htmlspecialchars et guillemets

Forum Programmation : [PHP ]Balise HTML, htmlspecialchars et guillemets

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

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.

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

A mon avis, c'est l'ordre de transformation de ta chaine qui ne va pas...
fais d'abord un htmlentities() et ensuite converti ton bbcode.

Répondre à crazycat@idn

Ben je pense mais je n'ai pas trouvé comment le mettre dans le bon ordre. Voici le code :

Code :
  1. $body = htmlentities(stripslashes(str_replace($remp_o, $remp_n, $original))); // FINAL POUR APERCU

Répondre à Surfeurdu33@IDN

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 à :

Code :
  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

Répondre à OmaR
Tom's Guide > Forum > Programmation > [PHP ]Balise HTML, htmlspecialchars et guillemets
Aller à :

Il y a 905 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens