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 :

Position relative avec include


Sujet :

Langage PHP

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 166
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 166
    Par défaut Position relative avec include
    Bonjour,

    Je développe un site web en php.

    à la racine de mon site, j'ai un dossier qui s'apelle "include". Là dedans je place tous mes modules qui sont inclus dans mes pages, qui sont à la racine.

    Certain de ces modules, on aussi une fonction inculde() qui va inclure un module se trouvant dans le meme doccier.

    Le problème que j'ai c'est que j'ai créé un nouceau dossier "teste" ou j'ai créé un page avec le meme canvas que les pages se trouvant à la racine.

    -index.php
    -page1.pgp
    -inculde/
    -include/module.inc.php
    -include/module2.inc.php
    -teste/teste.php
    dans ma page teste/teste.php j'ai changer e page des include ainsi
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    include('../include/module.inc.php);

    Le problème que j'ai c'est que le module2.inc.php ne peut pas etre trouvé depuis la page /teste/teste.php.
    En revanche il est trouvé depuis la page page1.php

    vous voyer mon problème?
    Evidemment je ne peux modifier le /include/module.inc.php sinon je problème sera déplace à la page1.php.

    Comment puis-je faire pour mes include(); soien trouvés quelque soit ou se trouve les pages dans l'arborescences?

    Merci

  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
    Décris ton chemin en partant de la racine du site.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 166
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 166
    Par défaut
    C'est à dire, donner une adresse absolue?

    Il n'y a pas un truc du genre aussi (avec 1 point)
    [CODE=PHP
    include_once('./include/include_main.php');[/CODE](bon ca ne marche pas...)

  4. #4
    Membre Expert
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Par défaut
    Salut,

    En utilisant
    1. la constante __FILE__ qui correspond au chemin complet et le nom du fichier courant.
    2. la fonction dirname() qui retourne le nom du dossier.

    Exemple dans le sous-répertoire include du répertoire actuel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $filename=dirname(__FILE__).DIRECTORY_SEPARATOR.'include'.DIRECTORY_SEPARATOR.'include_main.php';
    Exemple dans le sous-répertoire include du répertoire parent bin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $filename=dirname(__FILE__).DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'bin'.DIRECTORY_SEPARATOR.'include'.DIRECTORY_SEPARATOR.'include_main.php';

    DIRECTORY_SEPARATOR represente le slash (anti-slash pour Windows).

    Fonctionne sur tous les hébergeurs.

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Par défaut
    Par expérience, commences ton application par fixer le dossier d'exécution, à partir de cette information, chdir ton script, et ensuite construis TOUS tes chemins d'accès lorsque tu en as besoins à partir de cette variable.

    Ne multiplies pas les appels à __FILE___ ect, ce sera plus compliqué à maj dans 6 mois.

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 166
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 166
    Par défaut
    ok je compreds plus au moins. Merci.

    mais le problème qui se pose, et je le constate maintenant, c'est que doit faire la meme chose pour:

    root/include/
    root/js/

    J'ai donc mis ceci dans un des fichier qui se trouv dans le repertoire /root/include/

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    $filepath = dirname(__FILE__);

    Le probleme c'est que j'ai fait la meme chose pour un des fichier qui se trouve dans root/js/

    Ca ne marche pas et j'ai donc mis un echo comme ceci, dans le foichier qui se trouve de le dossier rot/js/

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $filepath = dirname(__FILE__);

    Il me retourne la valeur de ce qui se trouve dans root/include/

    D'un côté ca me semble logique, mais alors comme puis-je appliquer cette solution dans une autre arborescence?

    (chais pas si j'ai tout compris)

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 166
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 166
    Par défaut
    E si je voulais aussi le faire avec le dossier image?

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Par défaut
    Moi, il me semble que tu auras un nombre restreint de chemins d'accès à définir.
    Cela peut sembler un peu énorme au début, mais il me semble, encore une fois, qu'il vaut mieux poser quelques grosses briques bien situées, cernées au début, qu'une multitude de briques petites éparpillées et mal définies, rajoutées au fil de l'eau des besoins.
    Une fois ceci bien poser on se rend compte que l'on y touche peu souvent.

    Dans mes applis, j'ai grosso merdo une vingtaine de path à déclarer (classes communs / projet ect, config, déclarations d'options, dossier d'exec web, chemin des crons, et d'autres que j'oublie complètement), et depuis que je la développe celle là, je n'en ai que très peu à rajouter. De temps en temps je les modifie très sereinement puisque ce socle est bien défini au début.

    Après il faut cerner ce dont tu as besoin et ce vers quoi tu souhaites tendre en termes de service, pour toi, et d'éventuels autres développeurs de ton projet.

    Précision, je ne comprend pas ce code personnellement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $filepath = dirname(__FILE__);
    Sommes nous entrain d'afficher l'affectation de $file_path, ou le résultat de l'exécution de l'affectation de dirname(..) sur filepath.
    Je suis un peu pointilleux sur ce genre de syntaxe flou, désolé :=)

    a plus

  9. #9
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 166
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 166
    Par défaut
    Ben moie, je suis perdu finalement. Je ne vous suis pas.

    Groso modo, et pour résumé,

    j'ai a la racine de mon projet, trois dossiers

    root/include
    root/js
    root/image
    Dans lequel se trouve de modules, des images ou des code javascript qui sont appeler dans toutes mes pages.

    Maintenant j'ai créé un dossier /newsletter/ dans lequel j'ai ouvert une des page de la racine, et j'ai fais un "save as" et je l'ai sauvé dans mon dossier enfant.
    Et là j'ai des problème de chemin.

    Le seul truc que j'ai besoin, et je me perds dans vos explications, est comment cherger mes modules, images et code javascript, sans avoir des "file not found" depuis n'impotre où, dans mon arborescence.



  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Par défaut
    tu ne serais pas entrain de mélanger chemin d'accès par l'URL (ton serveur web) et par le système de fichier (ie ton disque dur) ?

    ou c'est ptet moi...

  11. #11
    Membre actif
    Inscrit en
    Juin 2010
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Juin 2010
    Messages : 108
    Par défaut
    Bonsoir,

    peut-être le plus simple est de définir la variable include_path dans ton php.ini

  12. #12
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 166
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 166
    Par défaut
    Le probleme c'est que je n'ai pas acces à mon fichier php.ini et j'ao aussi besoin de trouver cette solution pour mes dossier images/ et js/

    .. ha puis j'oublie aussi le dossier /css/

Discussions similaires

  1. Mise en page CSS avec position relative
    Par hugo7 dans le forum Mise en page CSS
    Réponses: 13
    Dernier message: 13/08/2009, 12h54
  2. [DLL] PB avec Include (reformulation)
    Par Donut Man dans le forum MFC
    Réponses: 2
    Dernier message: 28/06/2005, 08h16
  3. [Débutant] position relative et absolue
    Par AurelBUD dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 23/06/2005, 08h46
  4. Quel niveau réel avec uv du Cnam en cour ?
    Par nebule dans le forum Etudes
    Réponses: 6
    Dernier message: 10/04/2005, 17h11
  5. position() relative au noeud courant
    Par luta dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 09/09/2004, 17h38

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