Problème de lien entre pages web

Résolu/Fermé
jenny131078 Messages postés 170 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 23 mars 2014 - 9 déc. 2010 à 19:15
jenny131078 Messages postés 170 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 23 mars 2014 - 11 déc. 2010 à 17:31
Bonsoir tout le monde,

Ce qui pourrait être simple devient une véritable prise de tête dans mon cas.
Je m'explique: mon site est composé d'un "index.php" qui inclut dans son header une page "menu.html", tous deux situés à la racine du site.
J'ai crée un dossier "pages" à la racine et souhaite que toutes les pages soit classées dans ce dossier, exceptés l'index et la page "contact" .

Les liens fonctionnent très bien quand je les teste à partir de la page index et contact.
Une fois que je le teste à partir d'une page située dans le dossier "pages", le navigateur me renvoie l'erreur suivante :
/monsite/pages/contact.php was not found on this server.

Effectivement elle ne s'y trouve pas puisque elle est à la racine de mon site...je ne sais même pas pourquoi il renvoie sur la page pages/contact puisque mon menu n'est pas configuré comme tel.

Voici menu.html :
<li class="menu"><a href="index.php" title="Accueil"><strong>ACCUEIL</strong></a></li>
<li class="menu"><a href="/pages/presentation.php" title="Présentation"><strong>PRESENTATION</strong></a></li>
<li class="menu"><a href="/pages/choixprod.php" title="Produits"><strong>PRODUITS</strong></a></li>
<li class="menu"><a href="pages/services.php" title="Services"><strong>SERVICES</strong></a></li>
<li class="menu"><a href="contact.php" title="Contact"><strong>CONTACT</strong></a></li>

Et voici la fonction include sur une des pages située dans mon dossier "pages"
<?php
include('../menu.html');
?>

J'ai tout retourné dans tous les sens, essayé avec ../ ou / ou ./ et rien à faire.
La seule chose qui fonctionne réellement est de mettre toutes mes pages à la racine du site ce qui m'embête car je souhaite bien tout ranger...
Si vous avez des suggestions, elles seraient plus que bienvenues
Merci

A voir également:

4 réponses

kadeh Messages postés 334 Date d'inscription vendredi 21 décembre 2007 Statut Membre Dernière intervention 15 novembre 2012 92
9 déc. 2010 à 21:47
Bonjour,

- 1ère chose à faire, changer "menu.html" en "menu.php"
vous pouvez utiliser par exemple une de ces deux solutions:
1ère solution( lien relatif):
creer deux page menu.php:
1- menu.php pour les pages se trouvant dans le racine du site
liens :
<a href="index.php" title="Accueil">ACCUEIL</a>
<a href="pages/presentation.php">PRESENTATION</a>
2 - menu.php pour les pages se trouvant dans le dossier pages
liens :
<a href="../index.php" title="Accueil">ACCUEIL</a>
<a href="presentation.php">PRESENTATION</a>
2ème solution (lien absolu):
1- tout au début de chaque page (php) vous mettez :
<?php define('dir_ws', 'http://www.votresite.com/'); ?>

2- creer un dossier "include" dans lequel placer le menu.php
inclure votre menu par:
<?php include_once(dir_ws . 'include/menu.php'); ?>

- les lien du menu.php seront:
<a href="<?php echo(dir_ws); ?>index.php">ACCUEIL</a>
<a href="<?php echo(dir_ws); ?>pages/presentation.php">PRÉSENTATION </a>

il ya d'autres solutions plus adaptées mais si l'arborescence de votre site n'est pas trop compliquée cela devra suffire.
@+
0
jenny131078 Messages postés 170 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 23 mars 2014 2
10 déc. 2010 à 18:49
Bonsoir,

Merci pour votre aide. J'ai bien pensé à la solution n°1 mais j'ai pas osé...
J'ai testé la solution n°2 qui me plait plus mais chez moi elle ne fonctionne pas : erreur dans la ligne qui correspond à la fonction <?php include_once(dir_ws . 'include/menu.php'); ?>
"wrapper is disabled in the server configuration by allow_url_include=0 in C:\wamp\www\mon site\index.php on line 37"

Je vais donc me rabattre sur la solution n°1, l'avantage d'avoir le choix:)
@+
0
kadeh Messages postés 334 Date d'inscription vendredi 21 décembre 2007 Statut Membre Dernière intervention 15 novembre 2012 92
11 déc. 2010 à 02:28
Bonjour,

à la racine de votre site, créez un dossier nommé "include" et y placer le fichier menu.php.
<ul id="menu">
<li><a href="/">ACCUEIL</a></li>
<li><a href="/pages/presentation.php">PRESENTATION</a></li>
<li><a href="/pages/choixprod.php">PRODUITS</a></li>
<li><a href="/pages/services.php">SERVICES</a></li>
<li><a href="/contact.php">CONTACT</a></li> 
</ul>

- pour les page se trouvant à la racine du site, inclure votre menu par:
<?php include_once('include/menu.php'); ?>
- pour les page se trouvant dans le dossier "page", inclure votre menu par:
<?php include_once('../include/menu.php'); ?>

pour les liens relatifs:
- remonter dans le repertoire parent:
<a href="../repertoire-parent/ma-page.html>ma page</a>
- descendre dans l'arborescence:
<a href="repertoire/ma-page.html>ma page</a>
pour le style de menu il serai mieux de le faire à l'aide d'une feuille de style css externe:
#menu {................}
#menu li {...............}
#menu li a {..............}

@+
0
jenny131078 Messages postés 170 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 23 mars 2014 2
11 déc. 2010 à 17:31
Bonjour,

Je vais rester sur la solution des liens relatifs, j'ai également un footer.php avec un lien hypertexte renvoyant sur une autre page php et pour qu'il fonctionne je suis obligée de le copier à la racine du site et dans mon dossier "pages".
Je vais en faire de même avec le menu.php, je vois plus l'intérêt d'avoir un dossier "include" si je ne peux y placer tous les fichiers à inclure.
Mon menu a bien une feuille de style CSS externe dédié à lui seul;)
Merci pour votre aide
@++
0