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 :

include() et $_SERVER['SCRIPT_FILENAME'] : retrouver la page appelante


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de sami_c
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Mai 2002
    Messages
    765
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 765
    Par défaut include() et $_SERVER['SCRIPT_FILENAME'] : retrouver la page appelante
    Bonjour,
    Ma page index.php fait un include à la page footer.php
    Le code de cette dernière est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ....
    $page = $_SERVER['SCRIPT_FILENAME'];
    print "Page appelante : $page";
    ...
    Le problème c'est qu'en lançant la page index.php la page appelante est footer.php et non pas index.php !! Comment faire pour avoir le nom du script qui a fait le include (index.php), et non pas le fichier qui a fait le traitement (footer.php) ??

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    Bonjour

    sur un php en Suexec - cgi, j'ai [SCRIPT_FILENAME] qui me donne la page appelante (et pas la page incluse). De même pour [REDIRECT_URL], [REQUEST_URI] , [SCRIPT_NAME], [ORIG_PATH_TRANSLATED], [ORIG_PATH_INFO] et [PHP_SELF].
    Si tu es en mod_php, toutes ces entrées ne seront pas disponible, mais tu dois bien avoir quelque chose !
    Que donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    echo '<pre>';
    var_dump(print_r($_SERVER));
    echo '</pre>';
    Dans footer.php ?

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    Idem sur un WAMP.

    Quel config as-tu ?

  4. #4
    Membre éclairé Avatar de sami_c
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Mai 2002
    Messages
    765
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 765
    Par défaut
    J'ai un wamp 2.0
    En fait voilà quand est-ce que ça pose problème :
    index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    include("htp://www.monsite.com/footer.php?param=val");
    ...
    dans ce cas, la page footer affiche son propre nom, et non pas celui de la page appelante

  5. #5
    Membre confirmé
    Avatar de savageman86
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 105
    Par défaut
    C'est logique : en gros, SCRIPT_FILENAME fait référence à l'URL entrée dans ton navigateur.
    Je pense que la constante __FILE__ pourra t'aider !
    (echo __FILE__ pour plus d'informations ^^).

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    Ah ok !
    Dans ce cas, c'est normal. Quand on envoie une requête (similaire à un GET) dans un include, le script dans l'include est d'abord exécuté, avant que le résultat ne soit inclus dans le script appelant. C'est donc bien footer.php qui est considérée comme [SCRIPT_FILENAME].
    Essaie avec les autres entrées que je t'ai indiqué plus haut, on ne sait jamais... (mais j'ai peur que non).

  7. #7
    Membre éclairé Avatar de sami_c
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Mai 2002
    Messages
    765
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 765
    Par défaut
    print_r($_SERVER) ne donne aucune info concernant la page appelante bon je pense que dans ce cas, l'unique solution est de passer le nom de la page appelante comme paramètre à la page appelé !
    Merci les gars

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

Discussions similaires

  1. Retrouver l'url de la page appelante
    Par oyigit dans le forum ASP.NET
    Réponses: 2
    Dernier message: 25/11/2008, 15h04
  2. afficher l'URL de la page appelante
    Par guillaumeIOB dans le forum Langage
    Réponses: 6
    Dernier message: 30/11/2005, 23h23
  3. [JSP] URL Page appelante
    Par marti dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 18/11/2005, 11h11
  4. mettre à jour la page "appelante" d'un formulaire
    Par fichtre! dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/08/2005, 08h39
  5. [POPUP] rafraichir la page appelante ET aller a une ancre
    Par meufeu dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 02/11/2004, 12h03

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