bonjours à toutes et à tous.

J'ai suivi le tuto: 'Inclure un fichier dans un autre grâce à PHP',http://css.alsacreations.com/Tutoriels-PHP/Inclure-un-fichier-dans-un-autre-grace-a-PHP.

Le problème ce situe à ce niveau:
a écrit :
nous préférerons l’écriture absolue <a href="/fruits/kiwi.php">page des kiwis</a> à l’écriture relative <a href="fruits/kiwi.php">page des kiwis</a>. Le / précédant l’url indique au navigateur de prendre pour point de départ la racine du site.

Le menu est mis dans les pages à l'aide d'une fonction include et les urls sont écrites de façon absolu pour que les liens restent valident à quelque
niveau de l'arborescence que se soit.
Mais mon navigateur me revoie 'page not found'. Il ne comprend pas '/' qui
devrait lui indiquer la racine du site. Avec des urls relatives, je n'ai pas de problèmes, mais je suis obligé de faire plusieurs menus.

Pour l'instant je fais tourner le site en local et c'est peut-être due à cela ?
Sinon, sur un serveur comme free, pourai-je contouner ce problème avec des urls absolues du genre:
http://name.free.fr/dossier/fichier.php
?
Modifié par ellynn (20 Jun 2007 - 09:00)
salut,

si tu tournes avec easyphp il me semble que la racine c'est localhost donc tes liens ne sont pas comme ça:

<a href="/mapage.php">Ma page</a>


Mais comme ça:

<a href="/monsite/mapage.php">Ma page</a>


J'ai pas easyphp sur mon pc pour vérifier mais il me semble que c'est ça. En espérant que ça t'aide ! Smiley cligne
Salut,

Voudrais-tu faire un effort sur l'orthographe et la lisibilité de tes messages car comme tu le sais, la vocation de ce forum est d'être accessible à tous... même aux personnes qui suivent ton sujet à l'aide d'une synthèse vocale. Smiley cligne

a écrit :
Avec des urls relatives, je n'ai pas de problèmes, mais je suis obligé de faire plusieurs menus.

Tout l'intérêt du php et des include est de permettre de ne pas dupliquer les éléments du site récurents pour se simplifier la vie lors de la maintenance.
Quelle est la raison qui te pousse à dupliquer ton menu ?
Premièrement, merci pour vos réponses.

Pour répondre à skatybabe, je toune avec apache sous mandriva, ce qui devrait me donner pour le menu une url du genre:
http://localhost/~utilisateur/mapage.php

j'ai essayé de nombreux cas de figures et cela ne fonctionne pas. Apache est configuré par défaut, il recherche directement dans le dossier public_html une page d'index. Et toutes les urls sont donc relatives pour fonctionner. Il s'agirait peut-être d'un problème de configuration de mon système...

Et pour mikachu, désolé pour l'orthographe, mais je pense qu'une bonne paire de lunettes me serait indispensable.

Je vais essayer de faire simple (pas facile quand on débute).
Sur toutes les pages de mon site, j'utilise un même menu qui se trouve être un fichier inclus dans chacune des pages, comme un 'footer'. Mais ma page d'index ne se trouve pas au même niveau dans l'arborescence que les autres pages. Ce qui me fait faire un menu pour la page d'index et un autre pour les autres pages, car les chemins d'accès ne sont pas les mêmes.

Désolé de vous faire perdre du temps avec cela, mais je retourne dans tous les sens les urls sans parvenir à les faire fonctionner comme l'indique le tuto.
Modifié par ellynn (20 Jun 2007 - 12:03)
ellynn a écrit :
Désolé de vous faire perdre du temps avec cela, mais je retourne dans tous les sens les urls sans parvenir à les faire fonctionner comme l'indique le tuto.

Il n'y a pourtant pas de raison que tu ne puisses pas utiliser les URL absolues depuis la racine du serveur...

Est-ce que tu connais l'emplacement exact du fichier à inclure depuis la racine du serveur ? Est-ce que tu peux y accéder directement en tapant son URL dans la barre d'adresse ?
Par exemple, tu es sur la page suivante :
http://localhost/dossier/sous-dossier/monsite/index.php
et le menu est dans un sous-dossier de « monsite », accessible avec le chemin suivant :
http://localhost/dossier/sous-dossier/monsite/include/menu.php

Le chemin pour le fichier à inclure sera donc :
/dossier/sous-dossier/monsite/include/menu.php

Et pour la version en ligne, ça sera sans doute :
/include/menu.php
ou à la rigueur :
/monsite/include/menu.php

Si vraiment ça coince, c'est que tu as un problème de configuration du côté du serveur Apache tel qu'il est installé par défaut par Mandriva. Là, il faudra probablement se tourner vers les forums Mandriva...