Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/05/2011, 07h32   #1
Membre habitué
 
Avatar de jlb59
 
Homme J-Luc
Retraité
Inscription : août 2004
Messages : 714
Détails du profil
Informations personnelles :
Nom : Homme J-Luc
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Retraité
Secteur : Industrie

Informations forums :
Inscription : août 2004
Messages : 714
Points : 123
Points : 123
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 :
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 :
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.
__________________
Cordialement.
JLB59

Analyse de la mémoire
jlb59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 10h51   #2
Futur Membre du Club
 
Inscription : mai 2011
Messages : 19
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 19
Points : 18
Points : 18
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.
Kouala est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 11h15   #3
Rédacteur/Modérateur
 
Avatar de 12monkeys
 
Homme Dr. Peters
Webmaster
Inscription : novembre 2006
Messages : 3 618
Détails du profil
Informations personnelles :
Nom : Homme Dr. Peters
Âge : 35
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Webmaster
Secteur : Service public

Informations forums :
Inscription : novembre 2006
Messages : 3 618
Points : 6 238
Points : 6 238
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...
__________________
Vous débutez dans la creation de sites web : les bases du html et débuter avec les CSS
Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
Votez pour les messages qui vous ont aidés...
12monkeys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 14h06   #4
Membre éclairé
 
Homme
Webmaster
Inscription : septembre 2007
Messages : 376
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

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

Informations forums :
Inscription : septembre 2007
Messages : 376
Points : 377
Points : 377
Salut,

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

Code :
1
2
 
DEFINE('PATH', '/home/site/');
Ainsi, tu pourras gérer tes liens facilement avec PHP :

Code :
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
Finality est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 31/05/2011, 14h13   #5
Membre habitué
 
Avatar de jlb59
 
Homme J-Luc
Retraité
Inscription : août 2004
Messages : 714
Détails du profil
Informations personnelles :
Nom : Homme J-Luc
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Retraité
Secteur : Industrie

Informations forums :
Inscription : août 2004
Messages : 714
Points : 123
Points : 123
Merci beaucoup à tous, et avec ce que vous m'avez donné, je vais essayer pour que ça marche impeccable !

A+
__________________
Cordialement.
JLB59

Analyse de la mémoire
jlb59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h32.


 
 
 
 
Partenaires

Hébergement Web