IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

méthode POST avec les caractères '&' et '+' dans une variable


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 7
    Points : 8
    Points
    8
    Par défaut méthode POST avec les caractères '&' et '+' dans une variable
    Bonsoir,

    J'ai actuellement un souci pour passer des valeurs avec XMLHTTPRequest vers un fichier php.
    En bref, les variables qui contiennent plusieurs fois le caractères '&' provoquent une "rupture".

    J'utilise la fonction javascript suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    function getXhr(){
     
         var xhr = null; 
         if(window.XMLHttpRequest) // Firefox et autres
              xhr = new XMLHttpRequest(); 
         else if(window.ActiveXObject)
    	 { // Internet Explorer 
              try
    		  {
                   xhr = new ActiveXObject("Msxml2.XMLHTTP");
              }
              catch (e)
    		  {
                   xhr = new ActiveXObject("Microsoft.XMLHTTP");
              }
         }
         else
    	 { // XMLHttpRequest non supporté par le navigateur 
              alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
              xhr = false; 
         } 
         return xhr
    }
    et j'envoie mes variables de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var xhr = getXhr();
    xhr.open("POST", "mon_fichier_php.php",true);
    xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');
    xhr.send("ma_variable=toto&tati");
    Tel que c'est écrit, le script pense que tati est une deuxième variable à envoyer.

    J'ai donc utiliser la fonction javascript escape() pour pallier à ce problème mais voilà j'ai ensuite rencontrer un autre problème qui est en fait mon véritable problème.

    Lorsque qu'une variable à envoyer contient le caractère '+', mon fichier php récupère ' ' à la place du caractère '+'.

    Par exemple pour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    var ma_variable = "toto+tati";
    xhr.send(escape(ma_variable));
    mon fichier php récupère :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    echo $_POST['ma_variable'];
    // affiche 'toto tati' au lieu de 'toto+tati'
    Voilà donc ça pose réellement un problème. Si vous pouvez m'éclaircir s'il vous plait je vous remercie d'avance.

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Re-bonsoir,

    j'ai résolu mon problème.

    J'utilise cette fonction qui modifie la fonction escape :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    (function () {
      var escape_old = escape; //ancienne fonction escape
      escape = function (texte)
      {
    	texte=escape_old(texte).replace(/\+/g,'%2B');
    	return texte;
      };
    })();

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. mettre les caractères entre guillemet dans une variable
    Par deltaweb dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 31/03/2013, 03h15
  2. Requète SQL avec nom de table contenu dans une variable
    Par samoussa dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/05/2009, 13h58
  3. problème avec les sauts de ligne dans une string
    Par hexdoc dans le forum Langage
    Réponses: 6
    Dernier message: 02/05/2008, 15h28
  4. Réponses: 5
    Dernier message: 12/02/2008, 12h01
  5. caractère spéciaux à mettre dans une variable
    Par BernardT dans le forum Langage
    Réponses: 7
    Dernier message: 12/12/2005, 11h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo