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 :

Lien cassé lors d'un changement de répertoire


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    sans
    Inscrit en
    Mai 2007
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2007
    Messages : 482
    Points : 193
    Points
    193
    Par défaut Lien cassé lors d'un changement de répertoire
    Bonjour,

    Je ne suis pas sûr de poster au meilleur endroit ...
    Voici le code que j'utilise pour mon site (merci jreaux62)
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
     
    <!doctype html >
    <html>
      <head>
        <?php include('head.php'); ?>
        <title>Des saveurs exotiques bien particulières</title>
      </head>
     
      <body>
        <div id="container"><div id="container">
      <header id="header">
     
        <div class="haut_gauche">
          Produits salés
        </div>
     
        <div class="haut_centre">
          <figure><img src="http://www.developpez.net/forums/avatars/256045-jreaux62.gif?dateline=1452331072"></figure>
        </div>
     
        <div class="haut_droit">
          Produits sucrés
        </div>
     
      </header>
     
      <main>
     
        <aside id="side_gauche">
          <nav class="side_menu" id="menu_gauche">
            <p>Gourmand de</p>
            <ul>
              <li><a href='chocolat_saveurs.php'> Chocolat</a></li>
              <li><a href='mousse-chocolat_saveurs.php'> Mousse chocolat</a></li>
              <li><a href='sucre-candy_saveurs.php'> Sucre Candy</a></li>
            </ul>
          </nav>
        </aside>
     
        <section>
          <article>
            <header>
              <h1>Saveurs</h1>
            </header>
            <div>
              <h2>Notre histoire commence là...</h2>
              <p>qdfg sdfg sdfgsdf sdfgsdfg sdfgdfg...</p>
              <p>...</p>
            </div>
          </article>
     
        </section>
     
        <aside id="side_droite">
          <nav class="side_menu" id="menu_droite">
            <ul>
              <li><a href='engagements_saveurs.php'>Nos engagements</a></li>
              <li><a href='engagements_saveurs.php'>Notre histoire</a></li>
              <li><a href='references_saveurs.php'>Nos références</a></li>
              <li><a href='SAV_saveurs.php'>SAV</a></li>
            </ul>
          </nav>
        </aside>
     
      </main>
     
      <footer id="footer">
     
        <div class="bas_gauche">
          Produits salés
        </div>
     
        <div class="bas_centre">
          <p>Ceci est le footer</p>
        </div>
     
        <div class="bas_droit">
          Produits sucrés
        </div>
     
      </footer>
    </div>
    </body></html>
    head.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <meta charset="utf-8" />
    	<link rel="stylesheet" href="saveurs.css" type="text/css" media="all">
    	<meta name="Robot" content="index, follow">	<!-- Est-ce utile ? -->
    Tout se passe bien pour les pages situées à la racine du site mais un problème survient quand je fais s'afficher une page présente dans le repertoire SUCRES.
    Je modifie (entre autres) le lien pointant vers head.php lequel pointe vers la feuille de style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php include('../head.php'); ?>
    Et là toute la mise en forme est perdue, la feuille de styles n'étant pas trouvée. Bizarre autant qu'étrange, non ?

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Essaie comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php include($_SERVER['DOCUMENT_ROOT'] . '/head.php'); ?>

  3. #3
    Membre habitué
    Homme Profil pro
    sans
    Inscrit en
    Mai 2007
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2007
    Messages : 482
    Points : 193
    Points
    193
    Par défaut
    Bonjour sabotage et merci pour ton intervention.
    J'avais déjà essayé .... en vain.

  4. #4
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Pardon c'est dans ton lien HTML qu'il y a un problème :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <link rel="stylesheet" href="/saveurs.css" type="text/css" media="all">

  5. #5
    Membre habitué
    Homme Profil pro
    sans
    Inscrit en
    Mai 2007
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2007
    Messages : 482
    Points : 193
    Points
    193
    Par défaut
    Ah oui, ça marche mieux comme ça, en effet.

    Du coup, pour ces fichiers présents dans ce répertoire, j'utilise:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php include('../headFrom1Repertoire.php'); ?>
    Sachant que headFrom1Repertoire.php contient :
    <link rel="stylesheet" href="../saveurs.css" type="text/css" media="all">
    Une conséquence que je n'attendais pas est que mes liens s'affichent comme si les pages étaient toutes dans le répertoire en cours SUCRES; par exemple, si je pointe vers 'Chocolat' dans mon menu, le survol m'indique
    'http://monsite/SUCRES/chocolat_saveurs.php'
    alors que chocolat_saveurs.php est à la racine du site.

    Comment puis-je régler ça au mieux ?

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour Denis,

    une solution est d'écrire le chemin absolu dans les liens.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="http://........">...</a>

  7. #7
    Membre habitué
    Homme Profil pro
    sans
    Inscrit en
    Mai 2007
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2007
    Messages : 482
    Points : 193
    Points
    193
    Par défaut
    Bonjour jreaux62

    Merci pour ton intervention.
    J'avais bien pensé à ça mais je pensais qu'il y avait une solution technique qui évitait d'avoir à ajouter http://MonNomDeDomaine/.... à chaque fois.
    Enfin, tant pis et encore merci.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Il y a bien une autre solution :

    mettre dans le <head> :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <base href="http://www.mon-site.com/" />
    => Voir la balise base.

    L'élément HTML Base définit l'URL de base à utiliser pour recomposer toutes les URL relatives contenues dans un document.
    Il ne peut y avoir qu'un seul élément <base> au sein d'un document.

    Ensuite, pour les liens, les images, il faut juste mettre le chemin relatif par rapport à la racine du site (http://www.mon-site.com/) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="dossier1/dossier2/fichier.php">xxx/<a>

  9. #9
    Membre habitué
    Homme Profil pro
    sans
    Inscrit en
    Mai 2007
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2007
    Messages : 482
    Points : 193
    Points
    193
    Par défaut
    Oui, je viens d'essayer.
    Ca fonctionne parfaitement pour les menus (donc évite d'écrire à chaque fois http://www.MonDomaine/...) mais ce gain est largement perdu dans chaque page pour laquelle il faut ajouter le chemin.
    Conclusion: J'en reste à la 1ère solution.

    Merci de nouveau.

  10. #10
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 628
    Points
    3 628
    Billets dans le blog
    8
    Par défaut
    Dites-moi si je fais une bêtise, mais moi dans ces cas-là, je mets ça en constante dans mon fichier config ?

    Donc dans config.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    define('SITE_URL','http://monsite.com');
    define('SITE_PATH','/nfssan/www-monsite');

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/03/2015, 14h26
  2. [XL-2010] Liens entre fichiers excel : problème lors d'un changement de dossier
    Par Angélique01 dans le forum Excel
    Réponses: 3
    Dernier message: 26/01/2015, 23h22
  3. Notification par email lors d'un changement dans le répertoire FTP
    Par mouazen dans le forum Shell et commandes GNU
    Réponses: 9
    Dernier message: 24/09/2014, 13h13
  4. [XL-2010] listes deroulantes liens casses lors de copies
    Par geheloftasie dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 20/06/2011, 08h45
  5. Réponses: 2
    Dernier message: 27/06/2006, 08h35

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