Signe + invisible

_JMB Messages postés 19 Date d'inscription lundi 27 mars 2006 Statut Membre Dernière intervention 26 mai 2011 - 25 avril 2008 à 21:02
_JMB Messages postés 19 Date d'inscription lundi 27 mars 2006 Statut Membre Dernière intervention 26 mai 2011 - 28 avril 2008 à 22:39
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

_JMB Messages postés 19 Date d'inscription lundi 27 mars 2006 Statut Membre Dernière intervention 26 mai 2011
26 avril 2008 à 12:17
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
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 avril 2008 à 12:24
Si tu reçois encodeUriComponent, et que tu fais en php urldecode(), tu auras ton +.
0
_JMB Messages postés 19 Date d'inscription lundi 27 mars 2006 Statut Membre Dernière intervention 26 mai 2011
28 avril 2008 à 22:24
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
0
_JMB Messages postés 19 Date d'inscription lundi 27 mars 2006 Statut Membre Dernière intervention 26 mai 2011
28 avril 2008 à 22:39
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
0
Rejoignez-nous