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 :

redirection header qui se plante


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 405
    Points : 5 762
    Points
    5 762
    Billets dans le blog
    1
    Par défaut redirection header qui se plante
    Bonjour,

    index.php placé à la racine du projet :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    //session_start();
    //include "vendor".DIRECTORY_SEPARATOR."autoload.php";
     
    //require 'routing.php';
     
    //echo "page=".$page;
    //header("Location: ".$page);
    header("Location: /controllers/Home-controller.php");
    Au lieu de rediriger vers le fichier http://dev.arnaudmarionmvc.fr/controllers/Home-controller.php ça met dans la barre d'adresse du navigateur (Firefox ou Chrome) http://dev.arnaudmarionmvc.fr/controllers/index.php?page=login. J'ai vidé le cache du navigateur. Rien n'y fait. Comment expliquer cela ?

    J'ai aussi essayé header("Location: controllers/Home-controller.php"); et header("Location: ./controllers/Home-controller.php");
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  2. #2
    Membre émérite
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 759
    Points : 2 996
    Points
    2 996
    Par défaut
    Bonjour Laurent

    Si tu reprends le code que tu proposes ci-dessus, toutes les lignes sont en commentaire excepté la ligne 9 qui fait le redirect.

    La source de ton problème est obligatoirement ailleurs. Ton code source, celui que tu montres, ne peut pas provoquer la situation que tu indiques dans ton message.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  3. #3
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 144
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 144
    Points : 8 317
    Points
    8 317
    Billets dans le blog
    17
    Par défaut
    Je suis d'accord avec cavo789.

    J'ajouterais qu'après ton header('Location: ...') tu ne fais pas de exit (ce qui est une mauvaise pratique).

    Ce qui veut dire qu'il y a peut-être un autre header() *après* qui prend la main sur la redirection, ou, au contraire, un autre header() *avant* lui-même non suivi d'un exit.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  4. #4
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 405
    Points : 5 762
    Points
    5 762
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    ce que vous dite semble évident ; dommage que je me le sois pas dit...

    Séb., j'ai aussi remarqué après coup que le exit manquait (ce n'est pas moi l'auteur de ce code) et je l'ai rajouté après avoir écrit le post :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    header("Location: ./controllers/Home-controller.php");
    exit();
    donc oui, le problème se situe dans le fichier vers lequel on redirige ; il contient un autre header :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    else {
            header('Location: ../index.php?page=login');
            exit;
        }
    Le retour arrière, je viens de le rajouter, mais ça ne doit pas être bon :
    La page n’est pas redirigée correctement
    Comment faut faire vu que le fichier vers lequel on redirige se situe un cran en arrière par rapport à son parent ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  5. #5
    Membre émérite
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 759
    Points : 2 996
    Points
    2 996
    Par défaut
    Pour info, ce que tu souhaites faire se nomme un routeur.

    Perso le seul et unique point d'entrée de mes applications PHP est le seul index.php se trouvant dans mon projet. Je n'utilise donc jamais de redirection comme tu le fais.

    Index.php va faire appel à des classes php (merci à composer), exécuter une méthode d'une classe donnée et revenir dans index.php. Aucune redirection.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Points : 1 877
    Points
    1 877
    Par défaut
    Deux suggestions:

    Il peut être intéressant de tester son site avec curl, Par exemple pour juste voir les headers, y compris les headers de redirection on peut exécuter:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    curl -v -L --head <url>
    Et peut-être que vous constaterez la présence de headers parasites ou redirections multiples.

    D'autre part, c'est une mauvaise habitude d'utiliser des chemins relatifs au lieu d'une URL complète avec le nom de domaine et le scheme (https).
    Utiliser des chemins relatifs ça revient à laisser le browser se débrouiller pour reconstituer l'URL complète, et cela peut être une source de problème si la résolution de cette URL ne se fait pas correctement.

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

Discussions similaires

  1. [Cookies] Redirection Header qui ne fonctionne pas
    Par arnaudperfect dans le forum Langage
    Réponses: 10
    Dernier message: 20/03/2007, 09h19
  2. Problème redirection header ('location:
    Par Jiraiya42 dans le forum Langage
    Réponses: 1
    Dernier message: 24/06/2006, 17h08
  3. [Frame] [Redirection] Header
    Par trach.sam dans le forum Langage
    Réponses: 3
    Dernier message: 16/05/2006, 16h45
  4. redirection header ne marche pas!!!
    Par duga dans le forum Langage
    Réponses: 4
    Dernier message: 01/10/2005, 11h58
  5. Header qui ne s'affiche pas
    Par Kodenji dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 04/08/2005, 11h05

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