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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    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
    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 émérite Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Par défaut
    Il faut encoder ton url !

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

    Ensuite tu decodes...

  3. #3
    Membre averti
    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
    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
    Membre averti
    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
    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
    Membre averti
    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
    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