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 :

encodage URL


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    734
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 734
    Par défaut encodage URL
    Bonjour,

    j'ai un problème avec le lien Voir tous de cette page sur site de test :

    http://www.monsite.com/mieux/b.php?a...et&c=Voi&h=262

    Dans la source de la page, le lien Voir tous s'affiche ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="j.php?a=A8H1,A8OL*pet^262&amp;c=Ccp&amp;h=1202£1203£262£10">Voir tous</a>
    Si lien est exécuté, le navigateur affiche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.monsite.com/mieux/j.php?a=A8H1,A8OL*pet^262&c=Ccp&h=1202%A31203%A3262%A310
    Deux problèmes :

    1) IE10 sous windows et j'imagine d'autres navigateurs n'encodent pas correctement le caractère £
    L'URL affichée sous IE10 est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.monsite.com/mieux/j.php?a=A8H1,A8OL*pet^262&c=Ccp&h=1202£1203£262£10
    Le script ne peut pas s'exécuter, page introuvable, erreur 400.

    2) html validator de Firefox n'aime pas l'URL de la source (pour rappel <a href="j.php?a=A8H1,A8OL*pet^262&amp;c=Ccp&amp;h=1202£1203£262£10">Voir tous</a>) :

    Warning: <a> escaping malformed URI reference

    _ _ _

    j'ai essayé d'employer urlencode ()
    html validator est content mais la nouvelle URL ainsi créée n'est bonne ni par Firefox ni par IE.
    Elle est exécutée mais je récupère de mauvaises variables qui plante le script.

    Je ne comprends pas grand chose, merci par avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    • urlencode() en entrée
    • urldecode() à la sortie


    Autre solution : arrêter d'utiliser des caractères trop "exotiques" pour les URL.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    734
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 734
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Autre solution : arrêter d'utiliser des caractères trop "exotiques" pour les URL.
    D'accord mais que prends-tu comme séparateurs ?
    £ ou ^ ou tilde ont l'avantage de ne pas être utilisés.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    734
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 734
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    [*]urldecode() à la sortie
    Excuse-moi mais qu'appelles-tu la sortie ?

    Le visiteur clique sur le lien, mon script PHP récupère les variables $_GET de l'url.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Encore plus fort :


  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    734
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 734
    Par défaut
    Merci pour le lien.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    734
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 734
    Par défaut
    Bonjour,

    j'ai résolu mon problème avec rawurlencode ().

    Cela fait pas mal de petits morceaux de liens à modifier mais cela fonctionne bien à présent.

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    734
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 734
    Par défaut
    Bonjour,

    Je pense avoir trouvé un début de solution dans ce tuto.

    Emploi de rawurlencode, mais pas sur toute l'URL comme j'ai essayé, uniquement sur les variables.

    rawurlencode ('1202£1203£262£10');

    j.php?a=A8H1,A8OL*pet^262&amp;c=Ccp&amp;h=1202%A31203%A3262%A310

  9. #9
    Invité
    Invité(e)
    Par défaut
    uniquement sur les variables
    Et oui, forcément !...

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    734
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 734
    Par défaut
    Ok.

    Tu penses donc que l'emploi de rawurlencode () sur les variables problématiques va régler mon problème ?

    A ma décharge c'est assez mal expliqué dans la doc de php.net.

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

Discussions similaires

  1. Problème encodage URL
    Par Upsiløn dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 14/12/2014, 18h06
  2. [Encodage] Problème après encodage URL
    Par gooffy dans le forum Langage
    Réponses: 2
    Dernier message: 22/12/2011, 16h27
  3. Problème d'encodage URL Web Viewer
    Par acombe dans le forum BIRT
    Réponses: 0
    Dernier message: 19/01/2010, 14h34
  4. [MySQL] Problème encodage url
    Par timmy1 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 08/01/2008, 14h06
  5. Problème encodage-decodage URL avec Java et Javascript
    Par alfreedd dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 27/04/2007, 12h11

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