Page 1 sur 2

avoir un menu commun à toutes les pages web

Publié : 30 mars 2006, 08:13
par ithaque
Bonjour

Je voudrai faire un menu bien évidemment commun à toutes les pages de mon site.
mais je ne voudrai pas, si j'ai une modif à faire, apporter cette modif à toutes mes pages web.... ce serait fastidieux, et pas des plus passionnant.

Y a t il une possibilité pour que j'ai un fichier unique pour le menu qui sera alors utilisé pour toutes les pages du site ?
De cette manière, 1 seule modif dans ce fichier aurait effet sur toutes les pages...

merci

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1

Publié : 30 mars 2006, 08:21
par calimo
Oui, avec php c'est possible :wink:

Tu fais un simple include("menu.php") sur toutes les pages et le tour est joué ;-)

Publié : 30 mars 2006, 09:14
par ithaque
du php ?

moi je travaille avec NVu, donc je crois que c'est juste du HTML non ?

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.0; fr-FR; rv:1.7.5) Gecko/20041108 Firefox/1.0

Publié : 30 mars 2006, 09:52
par martin
Pour compléter Calimo, en php si il n'y a pas de traitement à faire dans le fichier 'menu.php', un readfile('menu.php') est plus indiqué car plus léger.

Sinon si ton serveur supporte les SSI (Server Side Includes), tu peux arriver au même résultat avec un :

Code : Tout sélectionner

<!--#include virtual="/chemin/menu.htm" -->

Publié : 30 mars 2006, 10:07
par SB
ithaque a écrit :du php ?

moi je travaille avec NVu, donc je crois que c'est juste du HTML non ?
Non, Nvu peut intégrer un minimum de php pourvu que tu ne touches pas à l'arbre du document

Code : Tout sélectionner

<!doctype>
<html>
<head>
</head>
<body>
<?php
blablabla php pour inclure ton menu
?>
</body>
</html>
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1

Publié : 30 mars 2006, 18:12
par ithaque
et comment je fais mon "menu.php" ?
car je l'ai déjà fait sur NVu donc en HTML.... :?

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.0; fr-FR; rv:1.7.5) Gecko/20041108 Firefox/1.0

Publié : 30 mars 2006, 19:11
par martin
imaginons 2 fichiers dans un dossier, 'fichier.php' et 'menu.html'.

fichier.php :

Code : Tout sélectionner

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php readfile('menu.html'); ?>

du contenu...
</body>
</html>
menu.html :

Code : Tout sélectionner

<h1>un titre</h1>
<p>et un paragraphe</p>
Mais il faut bien sur que ton serveur ait php d'installé.

Pendant que j'y suis, la même chose avec les SSI, si il sont installé sur le serveur :
fichier.shtml :

Code : Tout sélectionner

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<!--#include virtual="/chemin/menu.htm" -->
du contenu...
</body>
</html>

Publié : 01 avr. 2006, 20:51
par ithaque
l'autre jour, en cherchant sur la web, j'ai trouvé ce petit tuto :
http://c00lman.free.fr/menuparinclud.php

je vois qu'il ressemble bcp à ce que tu dis martin, mais c'est "inversé"....
1/ le menu, dans le tuto, est le fichier php (menu.php)
2/ et j'ai le code source <?php readfile('menu.php'); ?> dans le fichier html qui est ma page.

Or selon toi martin, le mnu est en html et le code ci dessus dans le fichier php....
C'est pour celà que moi çà ne marche pas?

NVu pourtant comprend bien la ligne de code car il apparait la balise "php"...

alors ? :?

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1

Publié : 01 avr. 2006, 21:25
par calimo
Le fichier menu.php ne dois pas être un fichier HTML. Uniquement la partie de contenu que tu veux rajouter :wink:

Publié : 01 avr. 2006, 21:28
par ithaque
oui c'est ce que je fais
j'ai le menu commun à toutes mes pages que j'ai créé en html et ensuite modifié l'extension html -> php
et apres dans les différentes pages du site, j'utilise le code <?php include("menu.php"); ?> pour rappeler le menu
c'est bon non ?

qu'en penses tu du tuto ?

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1

Publié : 01 avr. 2006, 21:34
par calimo
ithaque a écrit :oui c'est ce que je fais
j'ai le menu commun à toutes mes pages que j'ai créé en html et ensuite modifié l'extension html -> php
Je viens de dire que le fichier php ne dois pas être un fichier html.
ithaque a écrit :et apres dans les différentes pages du site, j'utilise le code <?php include("menu.php"); ?> pour rappeler le menu
c'est bon non ?
À ton avis ? :lol:
ithaque a écrit :qu'en penses tu du tuto ?
http://yansanmo.no-ip.org/ysm-validator ... includ.php
http://www.yoyodesign.org/doc/w3c/css2/cover.html
http://www.la-grange.net/accessibilite/ ... tents.html
:wink:

Publié : 01 avr. 2006, 22:06
par SB
ithaque a écrit :l'autre jour, en cherchant sur la web, j'ai trouvé ce petit tuto :
http://c00lman.free.fr/menuparinclud.php

je vois qu'il ressemble bcp à ce que tu dis martin, mais c'est "inversé"....
1/ le menu, dans le tuto, est le fichier php (menu.php)
2/ et j'ai le code source <?php readfile('menu.php'); ?> dans le fichier html qui est ma page.

Or selon toi martin, le mnu est en html et le code ci dessus dans le fichier php....
C'est pour celà que moi çà ne marche pas?
Fais simple : mets les deux fichiers en .php comme ça pas de souci. L'important c'est que dans ton fichier menu tu n'ais que le menu et rien d'autre, c.a.d. supprime tout ce qu'il y a autour (<doctype>, <html>, <body>, etc...).

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1

Publié : 02 avr. 2006, 10:58
par ithaque
Je viens de dire que le fichier php ne dois pas être un fichier html.
donc tu veux dire qu'il ne faut pas créer un menu.html puis de modifier en menu.php !
j'avais pas compris, je croyais que c'était faisable... :?
je vais voir les tutos que vous me proposez :wink:

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1

Publié : 02 avr. 2006, 12:41
par martin
Mais as tu au moins essayé les 2 fichiers que je t'ai proposé ?

Commence par essayer, puis adapte à ton cas.

Quelque eclaircissements :

- il est bien evident qu'il faille que ton serveur ait php !
- si tu veux essayer en local (sur ton ordinateur), il te faut donc installer un serveur et php. Le plus simple est d'utiliser wampserver, ou easyphp, ou xampp.

- le fichier 'fichier.php' doit absolument avoir l'extension .php, sinon il ne sera pas traiter par php.
- par contre le fichier 'menu.html' peut s'appeler menu.php, menu.toto, menu.cequetuveux, menu. On s'en fout puisque on fait un readfile() dessus, cette fonction ne fait que transmettre tel quel le contenu du fichier lu.
- menu.html (ou menu.php) ne doit evidement pas contenir un fichier html complet (puisqu'il va être inclus dans un autre), mais seulement la partie du code html qui va être inclus.
- si dans ce menu tu souhaites également faire des traitements php, alors readfile n'est plus indiqué, il faut se servir de include() ou require().

Publié : 02 avr. 2006, 13:00
par Ymai
Essaie voir si ceci ne peut pas t'aider, puisque tu utilises NVU:
http://www.geckozone.org/forum/viewtopic.php?t=33000