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

Langage PHP Discussion :

Passer le symbole + dans une URL


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 60
    Points : 29
    Points
    29
    Par défaut Passer le symbole + dans une URL
    Bonjour,
    J'ai passé pas mal de temps a résoudre ce petit problème mais en vain:
    J'ai besoin de passer dans l'url des symbole +, ce qui sera traduit dans la réception par un espace blanc.
    Pour cela j'ai mis une fonction qui remplace les + par son code hexadécimal qui est %2B,
    mais la surprise est que dans l'url elle s'affiche de nouveau comme +, ce qui ne résous pas donc le problème.
    Voici mon code:
    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
     
    //la fonction filtre:
    function filter($var)
     
    {
    		if(ereg("\+",$var)) {$var=strtr($var,array("+"=>"%2B"));}
    		return $var;
    }
    //ici un exemple de vérification 
    Smavariable="exemple+";
    echo  Smavariable; //donne: exemple+
    echo  filter(Smavariable); //donne: exemple%2B
    //parcontre:
     echo "href=mapage.php?mavariable=".filter($mavariable); 
    //donne  href=mapage.php?mavariable=exemple+

    Comment faire donc?
    Merci beaucoup .

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    chez moi ton exemple donne bien %2B, il est possible que ce soit ton navigateur qui affiche "+" (bien que j'ai testé sur IE8 et FF3).

    mais il est existe déjà la fonction urlencode() pour gérer tout ça.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 60
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par sabotage Voir le message
    chez moi ton exemple donne bien %2B, il est possible que ce soit ton navigateur qui affiche "+" (bien que j'ai testé sur IE8 et FF3).

    mais il est existe déjà la fonction urlencode() pour gérer tout ça.
    Merci pour ta réponse rapide.
    Je vais essayer avec d'autre navigateur (le mien étant firefox je ne sais pas quelle version), mais ce serait bon aussi d'apprendre une nouvelle chose.
    En fait pour urlencode, elle nécessite une urldecode de l'autre coté, mais je ne sais pas ou la mettre exactement, comme la page se charge directement et les variables sont lus ?
    Merci.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 60
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par sabotage Voir le message
    chez moi ton exemple donne bien %2B, il est possible que ce soit ton navigateur qui affiche "+" (bien que j'ai testé sur IE8 et FF3).

    mais il est existe déjà la fonction urlencode() pour gérer tout ça.
    En effet, en faisant plus de test j'ai trouvé que la fonction filtre fonctionne correctement: en mettant le curseur sur le lien, la barre d'information affiche bien le "%2B", mais quand je clique dessus et la nouvelle page s'ouvre, il se remplace de nouveau par un "+".
    S'il vous plait il y a pas quelqu'un qui peut me débloquer ?
    Concernant la urlencoder elle marche, mais de l'autre coté je reçois l'url codé. Ou mettre donc la urldecoder?
    J'ai regardé pas mal de documents mais ils se contentent en expliquant la fonction de donner un exemple avec un echo , je trouve pas ça vraiment utile..

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    urlencode() fait exactement la meme chose que toi : elle transforme le + dans ta chaine en %2B

    Pour retransformer la chaine a l'arrivée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mavariable = urldecode($_GET['mavariable']);

  6. #6
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 60
    Points : 29
    Points
    29
    Par défaut
    Bonjour,
    Je crois que j'ai trouvé la solution , en fait j'ai oublié de mentionner un détail:
    la nouvelle url ne s'ouvre pas directement dans une nouvelle fenêtre, mais je la passe a une fonction javascript qui se charge de l'ouvrir dans un popup.
    Ce qui m'a causé tant de problèmes (et que je n'arrive pas encore a comprendre) est quand je met le curseur sur le lien et qu'il m'affiche le lien a la barre d'information, car il m'affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    href="javascript:twNeowin('search4.php?relations2=mavariable',700,800,1)"
    ici, normalement j'attendais a ce qu'il affiche mavariable avec le "%2B" et pas le "+" puisqu'il n'a pas exécuté la fonction javascript encore, mais pourtant il m'affiche le + meme avec la urlencode.
    Bref, j'ai ajouté la ligne de code équivalent a ma fonction javascript et elle marche maintenant nickel.
    Merci pour toi sabotage pour tes réponses rapides.

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

Discussions similaires

  1. Passer des paramétres dans une URL
    Par adrix26 dans le forum SharePoint
    Réponses: 3
    Dernier message: 04/06/2008, 17h54
  2. [MySQL] Passer un ResultSet dans une URL
    Par npirard dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 30/07/2007, 11h35
  3. Réponses: 2
    Dernier message: 11/10/2006, 14h37
  4. [Tableaux] passer une variable php dans une url
    Par griese dans le forum Langage
    Réponses: 27
    Dernier message: 12/06/2006, 10h02
  5. [javascript]passer un bout de javascript dans une url
    Par LE NEINDRE dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 28/03/2006, 15h27

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