[RESOLU] [AJAX] probleme d'envoi d'un "+" par POST

probleme d'envoi d'un "+" par POST [RESOLU] [AJAX] - HTML/CSS - Programmation

Marsh Posté le 06-12-2006 à 08:31:41    

salut a tous
 
ca c'est le HTML de la page
 

Code :
  1. <div id="chatw"></div><br /> // div qui affiche le contenu du chat
  2. <b></b> <input type="hidden" id="pseudo" size="15" value="unalive" />
  3. <input type="text" id="message" class="bouton" size="40" onkeypress="if(event.keyCode == 13) { sendtochat(); } if(event.which == 13) { sendtochat(); }" />
  4. <input type="button" onclick="sendtochat()" value="Envoyer" class="bouton" />


 
la fonction sendtochat()
 

Code :
  1. function addToChat() {
  2. ajaxdo('mess='+ document.getElementById("message" ).value +'&pseudo='+ document.getElementById("pseudo" ).value,'addmessage.php','POST','chatw');
  3. }
  4. function sendtochat() {
  5. addToChat();
  6. document.getElementById('message').focus();
  7. document.getElementById('message').value='';
  8. document.getElementById('chatw').scrollTop=99999;
  9. }


 
Mon probleme c'est que quand document.getElementById("message" ).value récupéré du champs texte ci-dessus) contient un "+" il en fait un esapce lors du traitement de addmessage.php


Message édité par imcdb le 06-12-2006 à 09:01:49

---------------
Réagissez et commentez mes dessins sur snut.fr
Reply

Marsh Posté le 06-12-2006 à 08:31:41   

Reply

Marsh Posté le 06-12-2006 à 08:38:53    

tu passes pas ton formulaire en post mais en get, en fait c'est même encore pire vu que tu construis la l'url en rajoutant les valeurs qui t'interessent.
Je te conseille donc de faire un encodeURI des valeurs passées dans l'adresse.


Message édité par anapajari le 06-12-2006 à 08:39:09
Reply

Marsh Posté le 06-12-2006 à 08:44:31    

encodeURIComponent c'est une fonction JS c'est bien ça ? (je suis boulet, boulet)
 
doncje dois transformer ma ligne de code en

Code :
  1. ajaxdo('mess='+ encodeURIComponent(document.getElementById("message" ).value) +'&pseudo='+ document.getElementById("pseudo" ).value,'addmessage.php','POST','chatw');


 
c'est ça ?


---------------
Réagissez et commentez mes dessins sur snut.fr
Reply

Marsh Posté le 06-12-2006 à 08:47:15    

Yep, et pareil sur le pseudo !!!
J'espere que tu as bien lu la doc surtout ces deux passages:

Citation :

This is super, super, super dangerous if you are using PHP with register_globals turned on.


et

Citation :

These behaviors are most likely not consistent across browsers.

Reply

Marsh Posté le 06-12-2006 à 09:01:13    

ca marche nickel... Mais il faut bien utiliser encodeURIComponent et pas encodeURI - qui ne fonctionne pas.
 
je mets le topic en résolu


---------------
Réagissez et commentez mes dessins sur snut.fr
Reply

Marsh Posté le 06-12-2006 à 09:02:54    

imcdb a écrit :

ca marche nickel... Mais il faut bien utiliser encodeURIComponent et pas encodeURI - qui ne fonctionne pas.


C'était marqué dans le lien donné hein :o

Citation :

Note that encodeURI by itself cannot form proper HTTP GET and POST requests, such as for XMLHTTPRequests, because "&", "+", and "=" are not encoded, which are treated as special characters in GET and POST requests.


Reply

Marsh Posté le 20-12-2006 à 10:15:46    

en effet... merci a toi


---------------
Réagissez et commentez mes dessins sur snut.fr
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed