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 :

Valeur de parametre avec caractere "+"


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 49
    Points : 36
    Points
    36
    Par défaut Valeur de parametre avec caractere "+"
    Salut,
    Dans une page, j'affiche des numéros de téléphone au format international (+33123456789) avec un lien sur une page de détail pour chaqun des numéros.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <table>
     <tr>
      <td>Liste des numéros de téléphone</td>
     </tr>
     <tr>
      <td><a href="detail.php?telephone=+33123456789">+33123456789</a></td>
     </tr>
      <td><a href="detail.php?telephone=+33123456780">+33123456780</a></td>
     </tr>
      <td><a href="detail.php?telephone=+33123456781">+33123456781</a></td>
     </tr>
    </table>
    Dans le page detail.php, lorsque je recupere la valeur de telephone avec $_GET["telephone"]; le "+" est remplacé par un espace!
    Y a t il une solution?
    Merci.

  2. #2
    Membre éprouvé Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    Il faut encoder ton url !

    Avec urlencode, ce qui va te donner un %2B à la place du +.

    Ensuite tu decodes...
    Consultant idéaliste.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 49
    Points : 36
    Points
    36
    Par défaut
    OK,
    j'ai mis le urlencode(...) dans la page source et je voie bien dans la barre de satus du navigateur que les caracteres sont bien remplacés.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <table> 
     <tr> 
      <td>Liste des numéros de téléphone</td> 
     </tr> 
     <tr> 
      <td><a href="detail.php?telephone=urlencode(+33123456789)">+33123456789</a></td> 
     </tr> 
      <td><a href="detail.php?telephone=urlencode(+33123456780)">+33123456780</a></td> 
     </tr> 
      <td><a href="detail.php?telephone=urlencode(+33123456781)">+33123456781</a></td> 
     </tr> 
    </table>
    Par contre, dans la page de détail, je fait un urldecode(...) mais le "+" est encore remplacé par un espace!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo urldecode($_GET["telephone"])
    C'est bizare parce que je fait la meme chose dans une autre page mais avec des adresses e-mail a la place des numéros de téléphone et ca marche bien.
    Je ne comprend pas!

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 49
    Points : 36
    Points
    36
    Par défaut
    Ca y est, j'ai trouvé.
    En fait il faut utiliser rawurlencode(...) et rawurldecode(...).
    La difference avec urlencode(...) et urldecode(...) est justement que le caractere "+" n'est pas remplacé par un espace.
    Merci.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 49
    Points : 36
    Points
    36
    Par défaut
    Ca y est, j'ai trouvé.
    En fait il faut utiliser rawurlencode(...) et rawurldecode(...).
    La difference avec urlencode(...) et urldecode(...) est justement que le caractere "+" n'est pas remplacé par un espace.
    Merci.

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

Discussions similaires

  1. [phpMyAdmin] requetes avec caractere quote 0060
    Par tremeur53 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 28/05/2011, 14h14
  2. Réponses: 1
    Dernier message: 14/12/2007, 12h15
  3. Select et insert avec des caracteres speciaux (quote ')
    Par Paco75 dans le forum Requêtes
    Réponses: 2
    Dernier message: 25/10/2006, 14h59
  4. [Tableaux] souci avec des simples quotes
    Par Jean Fi dans le forum Langage
    Réponses: 6
    Dernier message: 29/03/2006, 20h13

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