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 :

[PHP-JS] probleme arborescence avec require


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 616
    Points : 177
    Points
    177
    Par défaut [PHP-JS] probleme arborescence avec require
    Bonjour

    dans mon site, toutes les pages(comme fichier.php) font appel à "session.php"
    require("includes/session.php");
    "session.php" fait aussi un require
    require("../../config/connect.inc.php3");
    l'arbo du site est donc : (en MAJ les dossiers)
    CONFIG
    -------connect.inc.php3
    WEBSITE
    --------ADMIN
    -------------fichier.php
    -------------INCLUDE
    --------------------session.php
    jusque là ça fonctionne

    si je met le dossier "TEST" et son fichier "test.php" à la racine de ADMIN,
    avec dans "test.php" un require de "session.php"
    require("../includes/session.php");
    "session.php" va toujours faire comme require :
    require("../../config/connect.inc.php3");
    et là "PAF" une erreur de chemin!

    Donc comment faire pour changer le chemin du require de "session.php" si celui-ci est appelé par le fichier "test.php" du dossier "TEST" ?

    j'espere avoir été assez clair
    et je vous remercie d'avance de votre aide

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    Si tu faisais simplement un require avec le chemin absolu vers le fichier ?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 616
    Points : 177
    Points
    177
    Par défaut
    pas possible (d'autre parametre m'empeche de faire cela)

    l'ideal serait de recupérer le nom du dossier où se trouve le fichier qui appelle session.php
    et faire une condition pour modifier le chemin du require que fait session.php
    genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if($dossier=="dossier_appelant"){$chem = "../"}
    else{$chem = ""}
    require($chem."../../config/connect.inc.php3");
    Donc la vrai question est :

    Comment recuperer (dans session.php) le nom du fichier qui fait un require de session.php?
    et l'idéal de savoir dans quel dossier se trouve ce fichier?

  4. #4
    Membre éclairé
    Avatar de Dia_FR
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2006
    Messages : 512
    Points : 708
    Points
    708
    Par défaut
    si dans session.php tu appelles $_SERVER['PHP_SELF'], ça donnera, depuis la racine de ton serveur, le chemin du fichier où tu fais le require

    ex, dans www\html\_test\xxx
    fichier test.php qui fait un require
    fichier include.php qui fait un echo $_SERVER['PHP_SELF']
    test.php affiche /_test/xxx/test.php

    après, avec un explode tu récupéères le différents éléments et tu te débrouilles

    et sinon, mettre connect et include dans le même dossier ?

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 616
    Points : 177
    Points
    177
    Par défaut
    si dans session.php tu appelles $_SERVER['PHP_SELF']
    oui c'est cela que je cherche
    reste à bidouiller pour afficher que le nom du dossier
    /Fonctions/test2.php
    doit devenir
    Fonctions
    et ce tag sera resolu

    merci

  6. #6
    Membre éclairé
    Avatar de Dia_FR
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2006
    Messages : 512
    Points : 708
    Points
    708
    Par défaut
    ben à priori, ça devrait passer avec un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $chemin = explode('/', $_SERVER['PHP_SELF']);
    $dossier = $chemin[count($chemin) - 2];

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 616
    Points : 177
    Points
    177
    Par défaut
    exactement !!!
    un grand MERCI pour ton aide

  8. #8
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut

    Si tu ne veux pas te prendre la tête, tu te crée une constante qui pointe sur la racine de ton site et une sur la racine physique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    define ('SITE_URL', 'www.ton_site.qqch'); //racine web
    define ('MAIN_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR); //racine physique
    et ensuite tu utilises tout le temps ces constantes pour appeler un fichier, ainsi, où que tu sois dans ton arborescence, l'appel est toujours bon et le jour où tu dois faire une MàJ, tu la fais simplement sur ces 2 constantes.
    Simple, rapide et efficace

    PS : pour faire simple et que tu distingues bien la racine web de la racine physique, tu utilise la racine web quand tu fais du HTML, Javascript, ... du code coté client, et tu utilises la racine physique quand tu fais du PHP, ASP ... du code côté serveur (puisque la racine physique c'est celle du serveur)

  9. #9
    Membre éclairé
    Avatar de Dia_FR
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2006
    Messages : 512
    Points : 708
    Points
    708
    Par défaut
    Citation Envoyé par nicerico
    exactement !!!
    un grand MERCI pour ton aide
    à vot' service


    PS : j'utilise aussi une constante pour mon site, l'avantage comme l'a signalé trotters, c'est que t'as une seule ligne à modifier si besoin est

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

Discussions similaires

  1. [PHP-JS] Probleme avec onchange qui ne redirige pas
    Par Greggggggg dans le forum Langage
    Réponses: 11
    Dernier message: 28/07/2006, 12h43
  2. [PHP-JS] Probleme de popup javascript en php avec dreamweaver
    Par wadali_2000 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/07/2006, 20h00
  3. Réponses: 2
    Dernier message: 28/06/2006, 15h56
  4. [Tableaux] Probleme avec "require"
    Par Yekhen dans le forum Langage
    Réponses: 4
    Dernier message: 29/05/2006, 11h52

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