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 :

Mauvais liens dans un site contenant des includes !


Sujet :

Langage PHP

  1. #1
    Membre éprouvé
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    1 024
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 1 024
    Par défaut Mauvais liens dans un site contenant des includes !
    Bonjour à tous,

    J'ai essayé de faire un nouveau site qu'avec du css.
    Les pages sont pratiquement toutes en PHP, parce que j'ai des "Include" (pour Header, Menu_g et d, Footer) .
    Index.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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title></title>
    <link href="styles/styles.css" rel="stylesheet" type="text/css" title="" media="screen">
    <link href="styles/header.css" rel="stylesheet" type="text/css" title="" media="screen">
    <link href="styles/footer.css" rel="stylesheet" type="text/css" title="" media="screen">
    <link href="styles/menu_h.css" rel="stylesheet" type="text/css" title="" media="screen">
    <link href="styles/menu_g.css" rel="stylesheet" type="text/css" title="" media="screen">
    </head>
    <body>
     
    <div class="fond">
     
    <div id="header">&nbsp;</div>
     
    <div id="menu_h">
    	<?php include("main/menu_h.html"); ?>
    </div>
     
    <div id="menu_g">
    	<?php include("main/menu_g.html"); ?>
    </div>
     
    <div id="pages">
    	<?php include("pages/accueil.html"); ?>
    </div>
     
    <div id="footer">
    	<?php include("main/footer.html"); ?>
    </div>
     
    </div>
     
    </body>
    </html>
    Menu_g
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <div class="main_menu">
     
    <h2>Bureautique</h2>
      <ul>
      <li><a href="./pages/bureautique/page1.php">Page 1</a></li>
      <li><a href="./pages/bureautique/page2.php">Page 2</a></li>
      <li>Item 2</li>
      <li>Item 3</li>
      </ul>
    (...)
    En effet, avec du HTML, ça marche pas !

    Lors du lancement, tout s'affiche bien et les liens sont opérationnels.
    Donc, un lien m'amène dans le répertoire où se trouve le fichier. Ce fichier est bien-sur en PHP parce que j'ai les mêmes "Include" (pour Header, Menu_g et d, Footer) !

    Le hic, c'est quand je suis sur cette page, automatiquement les liens des menus sont les mêmes puisque ce sont des "Include", et quand je clique, j'ai un message m'indiquant que le fichier (donc le lien cliqué) est introuvable !

    Est-ce qu'il y a une solution à ça ?

    Merci d'avance de votre aide.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 19
    Par défaut
    Une solution consiste à déclarer une variable php sur ta page principale qui contient l’arborescence pour revenir à ton répertoire racine (dans ton cas '../../')
    Et tu la concatènes à ton lien.

  3. #3
    Expert confirmé
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Par défaut
    Bonjour

    Il faut que tu gère tes liens via php, pour qu'ils s'adaptent en fonction de la page dans laquelle est appelé l'include.

    Tu peux par exemple indiquer dans la page où se trouvent les include, le niveau de la page dans l'arborescence. Puis tenir compte de cette variable pour modifier les liens dans les fichiers inclus.

    Ou alors lire l'url de la page courante, compter le nombre de / ce qui te donnera également le niveau de l'arborescence...

    Ou alors mettre des liens absolus, mais c'est pas très portable...

  4. #4
    Rédacteur

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2007
    Messages : 494
    Par défaut
    Salut,

    une solution consisterai aussi en stockant le chemin absolu dans une constante, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DEFINE('PATH', '/home/site/');
    Ainsi, tu pourras gérer tes liens facilement avec PHP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo '<a href="' . PATH . 'pages/bureautique/page1.php">Page 1</a>
    Au terme de portabilité, on est pas mal, une constante à changer quand tu déplaces ton site.

    Au plaisir,
    Finality

  5. #5
    Membre éprouvé
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    1 024
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 1 024
    Par défaut
    Merci beaucoup à tous, et avec ce que vous m'avez donné, je vais essayer pour que ça marche impeccable !

    A+

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/05/2006, 00h07
  2. Réponses: 1
    Dernier message: 18/04/2006, 12h24
  3. Réponses: 2
    Dernier message: 07/11/2005, 18h54
  4. Cherche un site contenant des sources valables
    Par Kartofel dans le forum Debian
    Réponses: 7
    Dernier message: 14/01/2004, 14h05

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