Aller au contenu

&40; &41; à la place des parenthèses


Sujets conseillés

Posté

Tu as très probablement une fonction du style htmlspecialchars ou htmlentities qui traine quelque part, soit avant l'insert dans la base de données, soit avant l'affichage à l'écran.

Je pencherais pour la première solution, sachant que désactiver la fonction pourrait 'nuire' à ta base de données ;)

Posté

En fait, tu dois avoir une fonction, disons 'htmlspecialchars', qui convertit les caractères spéciaux, tel l'esperluette (&) en caractère html équivalent (&). Donc, ton enregistres du html dans la base de données. Jusque là, normal.

Seulement, lors de l'affichage, tu refais la meme opération. Tu convertis ces memes caractères en entités html. Une parenthèse se retrouve donc tour à tour :

1 = (

2 = (

3 = (

Le cas 3 est du à la transformation du '&'.

Jettes un oeil au programme qui affiche les données, tu as certainement une fonction qui transforme ces données.

Par nuire, je veux dire que si l'on transforme ces caractères, c'est bien parce qu'ils sont spéciaux, et qu'ils peuvent provoquer des bugues.

Posté

lol, comme quoi les questions sont les mêmes partout...

Personellement, je ferai à l'insertion de la base :

$chaine = preg_replace("#(\&\#[0-9]+)#", "", $chaine);
Posté

c'est vrai que cela risque de remplace trop de caractères.

Fais alors :

$chaine = preg_replace("#(\&\#(40|41)\;)#", "", $chaine);

ainsi il remplacera les caractère ( et ) par rien du tout

Posté

J'aimerais éviter le problème, et qu'il m'encode correctement les ( ) dans ma db, ça me paraît plus intéressant que de laisser une erreur et de la corriger systématiquement

Posté

Bon. Le problème, c'est qu'il est facile de dire ce qui pourrait 'dépanner', ca ne résoudra pas le fait qu'il y ait, comme tu le dis, un problème quelque part.

Pourrais tu nous transmettre le programme qui envoie les données dans la base, ou celui qui les envoies à l'écran ? Que l'on sache de quoi on parle, de quoi il en retourne exactement ?

Pour l'instant, on échafaude des théories sur rien de 'concret' ;)

Anonymus.

Posté

Ma répo,nse permet enfait de remplacer les entités de caractère qui sont sous forme & # chiffre par leur équivalent caractère (chr).

Mais il doit y avoir une enroule plus haut dans le script (lors de la mise en BDD d'une entité qui se fait trop ou pas assez)

Veuillez vous connecter pour commenter

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



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