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 :

Header location, "&" s'affiche dans l'url [Encodage]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 92
    Par défaut Header location, "&" s'affiche dans l'url
    Bonjour,

    C'est la première fois que j'ai ce problème, après un header('location:...'), mon url se retrouve encodé avec &.
    J'ai vérifier l'url après le passage en post, mais ça ne vient pas de la.

    L'url que je dois utiliser se compose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monsite.fr/mapage.php?var1=x&var2=y
    , après la redirection celle-ci est transformé en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monsite.fr/mapage.php?var1=x&var2=y
    Ce qui pose problème car mes variables get ne fonctionnent plus.

    J'ai essayer urlencode mais rien à faire, c'est même pire

    Comment avoir mon url propre après le header ?

  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
    Par défaut
    A quoi ressemble ton code header actuel ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 92
    Par défaut
    Un header location tout bête.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    header('location:'.$url);
    $url étant la variable passé en post après avoir récupéré l'url en php ($_SERVER) ou plutôt $request->server('...') vu que j'utilise les sessions (et tout se qui va avec) de phpbb pour certains éléments de mon site.

    Récupération de l'url dans la page formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $host = $request->server('HTTP_HOST');
    $uri = $request->server('REQUEST_URI');
    $url =  "http://".$host.$uri;
    que je transmet en post

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="hidden" name="url" value="'.$url.'" />
    Le header dans la page de traitement, pour le moment vide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $url = $request->variable('url','',true);
    header('location:'.$url);
    Et même si l'adresse est en "clair" dans la page de traitement, le header me l'encode en remplaçant les "&" par "&amp;".

    Edit : Je précise que ce n'est pas la première fois que j'utilise cette manip pour revenir à la page de départ après traitement, mais je n'avais jamais eu de problème avant. Au début je pensais que c'était lié au système de phpbb mais vu que l'url est bien transmise ...

  4. #4
    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
    Par défaut
    Si tu fais un echo de l'url au lieu d'un header et que tu regardes la source HTML, l'url est encodé ou pâs ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 92
    Par défaut
    Non, comme précisé au début, le passage du formulaire au traitement se passe sans encombre, c'est uniquement au passage du header que l'url se retrouve encodé.

    J'ai quand même vérifier avec un echo, mais rien à signaler de ce coté.

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

    un simple echo ne permet pas de distinguer (à l'affichage) & de &amp;.
    Il faut un var_dump :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    $url = $request->variable('url','',true);
    var_dump( $url );

    Cela dit, as-tu entendu parler de urlencode() ?

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

Discussions similaires

  1. Adresse ip qui s'affiche dans l'url
    Par baggie dans le forum Domaines
    Réponses: 5
    Dernier message: 23/12/2015, 10h07
  2. [MySQL] Récupérer la valeur s'affichant dans une url
    Par boubout dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 02/03/2010, 22h32
  3. Réponses: 2
    Dernier message: 07/07/2006, 18h12
  4. Afficher un & (commercial) dans une URL
    Par manu1407 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 26/04/2006, 15h15
  5. header('Location:$url') VS session_start()
    Par Paniez dans le forum Langage
    Réponses: 2
    Dernier message: 02/12/2005, 22h30

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