Signe + invisible

Signaler
Messages postés
19
Date d'inscription
lundi 27 mars 2006
Statut
Membre
Dernière intervention
26 mai 2011
-
Messages postés
19
Date d'inscription
lundi 27 mars 2006
Statut
Membre
Dernière intervention
26 mai 2011
-
Bonjour à tous,

J'ai un pb bizarre : j'ai programmé un chat sur mon site (www.sapbm.com) avec PHP, MySQL et Javascript (Ajax)
Tout va bien, sauf UNE chose : le signe "+" n'apparait pas ! Tous les autres caractères apparaissent, même ceux un peu critiques comme les guillemets, slashs etc. mais pas le signe +
L'erreur semble venir de php ou mysql car j'ai testé la valeur retournée par javascript : on voit bien le signe + , par contre il n'y a rien qui s'inscrit dans la base !
Quelqu'un est-il au courant des signes + qui s'évanouissent dans la nature ?

_JMB

24 réponses

Messages postés
19
Date d'inscription
lundi 27 mars 2006
Statut
Membre
Dernière intervention
26 mai 2011

avec txt = encodeURIComponent(txt);
j'ai %2B à la place du +

Bon je vais pas t'ennuyer plus longtemps avec ça, je vais re-potasser la doc et revenir un de ces 4 sur le topic... :)
a+ (ça marche ici !)

_JMB
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Si tu reçois encodeUriComponent, et que tu fais en php urldecode(), tu auras ton +.
Messages postés
19
Date d'inscription
lundi 27 mars 2006
Statut
Membre
Dernière intervention
26 mai 2011

Re-bonjour à tous

J'ai trouvé une solution alambiquée, mais qui marche !
en ajax je code :
txt = txt.replace('+', 'wzxyq');
et en php je code :
$textemessage = str_replace('wzxyq' , '+' , $textemessage);
pourquoi cette chaine ridicule ? parce qu'elle a peu de chance de se retrouver dans un message !
Sinon encodeUriComponent() ne marche pas du tout...

_JMB
Messages postés
19
Date d'inscription
lundi 27 mars 2006
Statut
Membre
Dernière intervention
26 mai 2011

Petit correctif (sinon on ne peut mettre qu'un seul +) :

var regPlus = new RegExp("[+]", "g");
txt = txt.replace(regPlus, 'wzxyq');

le code php ne change pas...

_JMB