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 :

Problème avec include


Sujet :

Langage PHP

  1. #1
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut Problème avec include
    Salut,

    J'ai fait un fichier titre.php, qui contient des images et lien.

    Sur ma première page, j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ...
    <? include "titre.php"; ?>
    ...
    <a href="repertoire/fichier.php">
    ...
    Et cela fonctionne correctement.


    Par contre sur je mets l'include
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <? include "titre.php"; ?>
    dans fichier.php, cela ne fonctionne plus les images ont disparu, et les liens ne fonctionnent plus

    Merci.

  2. #2
    Membre averti Avatar de Shivaneth
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 349
    Points : 341
    Points
    341
    Par défaut
    Bonjour,
    essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <? include('../titre.php');?>
    tu doismettre le chemin relatif en partant du repertoire du fichier affiché (ici fichier.php)

  3. #3
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Erreur de ma part, j'avais fait une erreur de frappe, j'ai bien mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <? include('../titre.php');?>
    Mais cela ne fonctionne pas

    Voici le code de titre.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <html>
    <head>
    <link rel="stylesheet" type="text/css" href="Style.css">
    </head>
     
    <body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" marginwidth="0" marginheight="0" background="images/0_page.gif">
    <table border="0" width="100%" style="border-collapse: collapse" height="100">
    	<tr>
    		<td align="center" valign="middle"><? include "heure.php"; ?></td>
    		<td align="center" valign="middle"><a href=""><img border="0" src="images/Accueil.gif"></a></td>
    		<td align="center" valign="middle"><img border="0" src="images/Index.gif"></td>
    		<td align="center" valign="middle"><a target="_blank" href="forum"><img border="0" src="images/Forum.gif"></a></td>
    		<td align="center" valign="middle"><a href="moteur.php"><img border="0" src="images/rechercher.gif"></a></td>
    		<td align="center" valign="middle"><a href="mailto:mail@mail.fr?subject=Site Web"><img border="0" src="images/Contact.gif"></a></td>
    		<td align="center" valign="middle"><a href="aide.php"><img border="0" src="images/Aide.gif"></a></td>
    	</tr>
    </table>
    </body>
     
    </html>
    Mais quand je l'appelle d'un sous répertoire, cela veut fonctionne pas pour les images, mais fonctionne pour le fichier heure.php.

    J'ai remarqué que cela voulait me rajouter le répertoire en cours :

    Exemple le code est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td align="center" valign="middle"><a href="moteur.php"><img border="0" src="images/rechercher.gif"></a></td>
    Mais cela irait me chercher le lien sous_repertoire/moteur.php et l'image sous_repertoire/images/rechercher.gif
    J'espère avoir été assez clair dans mes explications

  4. #4
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Points : 2 853
    Points
    2 853
    Par défaut
    Il faut remonter en répêrtoire en faisant ca je pense (pas sur !!)

    ./../sous-repertoir/moteur.php

    Joue avec les point avant ^^

  5. #5
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Merci omura.

    Mais cela ne fonctionne pas, et je crois bien que tu n'as pas compris mon problème.

    Voici l'arborescence :
    Dans le répertoire_A : j'ai le fichier répertoire B et le fichier titre.php.
    Dans le répertoire_B : j'ai le fichier toto.php.

    Dans mon fichier titre.php j'ai le lien suivant : moteur.php.

    Et dans le fichier toto.php, j'ai mis la commande : <? include="../titre.php" ?>. Et cela ne fonctionne pas...

    Les liens ne fonctionnent pas, ils doivent être : moteur.php, et sur la page toto.php le lien se transforme repertoire_B/moteur.php.

    Et idem pour l'image, je dois avoir images/moteur.php et j'ai repertoire_B/images/moteur.php

  6. #6
    Membre averti Avatar de Shivaneth
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 349
    Points : 341
    Points
    341
    Par défaut
    je pense que l'"erreur" est normale, quand tu inclus ton fichier titre.php dans toto.php, ceola copie le contenu du fihier titre.php en quelques sortes, et donc tu te retrouves avec le fichier toto.php qui contient =""><img border="0" src="images/Accueil.gif"> par exemple, ce qui fait qu'il va aller chercher l'image Accueil.gif dans le dossier image qui pour lui se trouve alors dans ton sous répertoire.

  7. #7
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Et cela vient bien du prroblème de chemin relatif, si tu veux que ca fonctionne correctement pourquoi ne pas mettre ton fichier titre à la racine (au même niveau que les fichiers qui l'utilisent) ??

    Tu aurais plus de problème

    Petits détails :
    • ton fichier titre dans le répertoire A avec un lien dans le même répertoire : il y aura aucun problème (chemin relatif correct)
    • ton fichier titre dans le même répertoire mais appelé depuis le B les chemins seront concu à partir du répertoire B et non celui où est le fichier titre.
    SI tu modifies ton fichier titre dans l'un ou l'autre tu auras ce problème.Donc trois solutions: la plus rapide mettre tout au niveau, la deuxième faire deux fichiers (ce qui peut etre embetant je le concois), et la dernière mais vraiment plus long tester le répertoire dans lequel tu es et créer le lien en fonction des tests.


    PS : D'ailleurs si tu as ceci <? include="../titre.php" ?> tu auras aussi un problème de parse error qui te dira que l'ouverture du fichier est impossible vu que tu n'entres pas de le répertoire A vu que toto est dans le B

  8. #8
    Membre confirmé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Points : 493
    Points
    493
    Par défaut
    salut je ne suis pas sur de bien comprendre mais si tu as un fichier par exemple index.php a la racine de ton site ensuite des différentes page a inclure qui se trouve dans différent dossier. par exemple la page news.php qui se trouve dans le dossier infos, et que tu veux afficher une image dans la page news.php tu dois définir le chemin de l'image par rapport a ton index.php et non pas ton news.php.

    compréhesible ?

  9. #9
    Membre averti Avatar de Shivaneth
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 349
    Points : 341
    Points
    341
    Par défaut
    Citation Envoyé par cyrill
    salut je ne suis pas sur de bien comprendre mais si tu as un fichier par exemple index.php a la racine de ton site ensuite des différentes page a inclure qui se trouve dans différent dossier. par exemple la page news.php qui se trouve dans le dossier infos, et que tu veux afficher une image dans la page news.php tu dois définir le chemin de l'image par rapport a ton index.php et non pas ton news.php.

    compréhesible ?
    c'est pas du tout ça
    Il a un fichier à inclure dans plusieurs autres qui ne sont pas tous dans le même répertoire, ce qui fait que les liens en chemins relatifs ne fonctionnent pas

  10. #10
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2006
    Messages : 40
    Points : 37
    Points
    37
    Par défaut
    Tu peux aussi te créer une variable global qui sera définie juste avant d'appeler ton titre.php. Ensuite dans ton titre.php tu utilise cette variable. Donc, cette variable donnera à titre.php l'endroit réelle pour tes liens.


    Exemple de définition pour ton fichier toto.php qui est dans le répertoire B
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <? $GLOBALS["path"] = "../";
        include $GLOBALS["path"]."titre.php"; ?>
    Et dans titre.php, tu réutilise ta variable "path"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="<?=$GLOBALS["path"]?>fichier.php">
    Et si tu a un fichier tata.php qui est dans un sous-répertoire de rép B
    tu définie ta variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <? $GLOBALS["path"] = "../../"; ?>
    C'est comme ça que je travaille d'habitude et c'est la meilleure que j'ai trouvé à date.

  11. #11
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Merci cela fonctionne bien.

    @+.

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

Discussions similaires

  1. Problème avec include (encore ?!)
    Par Neii Mad dans le forum Langage
    Réponses: 13
    Dernier message: 07/07/2006, 18h11
  2. [Wamp] problème avec include
    Par etrevilly dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 06/07/2006, 15h26
  3. problème avec include
    Par Sebastien_INR59 dans le forum Langage
    Réponses: 8
    Dernier message: 21/03/2006, 16h05
  4. probléme avec include() via HTTP
    Par schlitters dans le forum Langage
    Réponses: 11
    Dernier message: 07/02/2006, 17h19
  5. problèmes avec "include file" pour une page asp
    Par chipsense dans le forum ASP
    Réponses: 1
    Dernier message: 02/09/2005, 15h22

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