Partage
  • Partager sur Facebook
  • Partager sur Twitter

[PhP] Chemin normal et inverse en include

Sujet résolu
    15 octobre 2018 à 20:41:41

    Bonsoir,

    Je ne sais pas si mon titre est très explicite mais je ne sais pas trop comment formuler ça...

    J'essaie de m'entrainer au php (aux bases pour le moment) en créant un site simple mais avec quelques utilisations de PhP, notamment des inclusions de pages.

    Pour faire simple, j'ai une page "index.php" dans le dossier de base. Dans cette page, j'ai un menu de navigation avec les liens vers les différentes pages de sites, lesquelles sont classés dans différents sous-dossiers pour classer mes pages selon les thèmes.

    J'ai donc créé un fichier .php dans lequel j'ai collé mon code concernant ce menu, vu qu'il est réutilisé pour toutes les pages. Jusque là, rien de particulier. Quand je suis sur ma page index, j'ai mes chemins d'écrits qui envoient sur les bonnes pages via les bons chemins incluant les sous dossiers si necéssaire. Sauf que, comme c'est le même code que j'ai inclus sur toutes mes pages, y compris celles qui sont dans des sous dossiers, les chemins qui y sont écrits ne fonctionnent plus une fois sur une page d'un sous dossier...

    Je vous met le code pour être bien clair parce que je ne suis pas sûr de l'être =D

    La page index avec l'inclusion de la page menu.php

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset='utf-8' />
    		<title>Partie 1 - Index 1</title>
    		<link rel="stylesheet" href="style.css" />
    	</head>
    	
    	<body>
    		<header>
    			<h1>L'univers de Harry Potter</h1>
    		</header>
    		
    		<?php include('menu.php'); ?>
    		
    		<section>
    			<p>Bienvenue sur ce site qui vous parlera de l'univers de Harry Potter.<br /> Voici déjà une image représentant les trois héros principaux !</p>
    			<p><img src="images/univers_harry_potter.jpg" alt="Univers-Harry-Potter"/><p>
    		</section>
    	
    	</body>
    </html>

    La dite page 'menu.php', sockée dans le même dossier que l'index 

    <nav>
    			<ul>
    				<li><a href="index.php">Accueil</a></li>
    				<li><a href="#">Les Personnages</a></li>
    					<ul>
    						<li><a href="personnages/harry_potter.php">Harry Potter</a></li>
    						<li><a href="personnages/ronald_weasley.php">Ronald Weasley</a></li>
    						<li><a href="personnages/hermione_granger.php">Hermione Granger</a></li>
    						<li><a href="personnages/neville_londubat.php">Neville Londubat</a></li>
    						<li><a href="personnages/albus_dumbledore.php">Albus Dumbledore</a></li>
    						<li><a href="personnages/minerva_mcgonagall.php">Minerva McGonagall</a></li>
    						<li><a href="personnages/rubeus_hagrid.php">Rubeus Hagrid</a></li>
    						<li><a href="personnages/drago_malefoy.php">Drago Malefoy</a></li>
    					</ul>
    				<li><a href="#">Les lieux importants</a></li>
    					<ul>
    						<li><a href="#">Poudlard</a></li>
    						<li><a href="#">4, Privet Drive</a></li>
    						<li><a href="#">Le Chemin de Traverse</a></li>
    						<li><a href="#">Pré-au-Lard</a></li>
    						<li><a href="#">Le Terrier</a></li>
    					</ul>
    				<li><a href="#">Les Maisons</a></li>
    					<ul>
    						<li><a href="#">Griffondor</a></li>
    						<li><a href="#">Serdaigle</a></li>
    						<li><a href="#">Poufsouffle</a></li>
    						<li><a href="#">Serpentard</a></li>
    					</ul>
    				<li><a href="#">L'histoire</a></li>
    					<ul>
    						<li><a href="#">L'école des sorciers</a></li>
    						<li><a href="#">La chambre des secrets</a></li>
    						<li><a href="#">Le prisonnier d'Azkaban</a></li>
    						<li><a href="#">La coupe de feu</a></li>
    						<li><a href="#">L'ordre du Phenix</a></li>
    						<li><a href="#">Le prince de sang-mélé</a></li>
    						<li><a href="#">Les reliques de la mort</a></li>
    					</ul>
    			</ul>
    		</nav>


    Et enfin, une page quelconque à laquelle on peut accéder via ce menu de navigation, mais qui se trouve dans un sous dossier de celui contenant l'index et le menu.

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset='utf-8' />
    		<title>Partie 1 - Harry Potter</title>
    		<link rel="stylesheet" href="../style.css" />
    	</head>
    	
    	<body>
    		<header>
    			<h1>Harry Potter</h1>
    		</header>
    		
    		<?php include('../menu.php'); ?>
    		
    		<section>
    			<p>Et voici Harry Potter, le héros principal (comme son nom l'indique =D) de cette saga !</p>
    			<p><img src="images/harry_potter.jpg" alt="Harry-Potter"/><p>
    		</section>
    	
    	</body>
    </html>


    Donc le chemin inverse de l'inclusion fonctionne bien, mais le soucis est que si je souhaite retourner par exemple sur la page index, il ne la trouve pas puisque qu'il la cherche dans le sous-dossier "personnages"...

    Je suppose qu'il y a une histoire de condition à mettre en place mais je ne vois pas bien comment l'intégrer dans le cas présent... Et j'ai peur que ça complique plus qu'autre chose le code pour une simple inclusion de menu ...

    Si quelqu'un a une idée de la marche à suivre...

    Merci d'avance =D

    • Partager sur Facebook
    • Partager sur Twitter
      15 octobre 2018 à 21:05:00

      Parce que je n'avais pas pensé aux chemins absolus, ne les ayant jamais utilisés avant ^^"

      Mais je vais faire comme ça du coup (puisque que je suppose que c'est ce que tu insinues =D)

      Merci bien en tout cas ;)

      • Partager sur Facebook
      • Partager sur Twitter
        15 octobre 2018 à 21:17:34

        Il y a plusieurs façons de faire, tout dépend si tue es sûr de garder la même arborescence de départ.

        Tu as ces recommandations, mais c'est en anglais... : https://www.w3.org/TR/html401/struct/links.html#h-12.4

        • Partager sur Facebook
        • Partager sur Twitter
          15 octobre 2018 à 21:41:55

          Pas sûr de tout comprendre mais pour le moment j'ai trouvé le chemin en absolu qui m'est bien utile pour ce que j'ai à faire. 

          Merci encore :)

          • Partager sur Facebook
          • Partager sur Twitter

          [PhP] Chemin normal et inverse en include

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown