[PHP] Paramètre contenant caractère spécial

Rem's Messages postés 64 Statut Membre -  
 Rem's -
Bonjour,

J'essaye de faire passer par l'intermédiaire d'un lien des variables à un autre script et le problème est que sur certains liens le caractère '&' est présent. Ce qui a pour incidence de me rajouter un variable (qui n'existe pas) dans mes paramètres.
En modifiant par le code html le prob est le même puisque le code contient aussi le caractère &. Donc, une solution de contournement que j'ai trouvé est de par exemple remplacer dans mon lien le & par #xy# par exemple ou tout autre chaine pas courante, puis de refaire l'inverse dans le script qui récupère les variables mais c'est pas très propre.

Existerait-il une autre solution?

Merci.

2 réponses

  1. jisisv Messages postés 3678 Statut Modérateur 936
     
    Salut,
    quel langage utilises-tu?
    Sous PHP, tu peux utiliser
    rawurlencode et rawurldecode
    http://php.belnet.be/manual/en/function.rawurlencode.php
    exemple:
    johand@horus:~/tmp$ cat test.php
    <?php
    $url1="http://monsite/moncgi?myvar=";
    $url2="descaractèresnonalphanumériques:?&";
    print("$url2\n");
    $res= rawurlencode($url2);
    printf("%s%s\n", $url1, $res);
    ?>
    johand@horus:~/tmp$ php test.php
    descaractèresnonalphanumériques:?&
    http://monsite/moncgi?myvar=descaract%E8resnonalphanum%E9riques%3A%3F%26
    johand@horus:~/tmp$
    


    Johan
    0
  2. Rem's
     
    Merci pour ta réponse, c'est exactement ce qu'il me fallait. En attendant, je m'etais fait un script avec un ereg replace qui permettait de faire la même chose mais en plus compliqé à gérer.
    0