IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Menu dans toutes mes pages


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de Rahim-US
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2009
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2009
    Messages : 151
    Points : 134
    Points
    134
    Par défaut Menu dans toutes mes pages
    Salut,

    J'ai un petit problème (de débutant) en php, je veux integrer un menu dans toutes les pages sur mon site, et pour cela j'ai creér un fichier menu.html dans le dossier "includes"

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <ul>
    <li><a href="2009/2009.php">2009</a></li>
    <li><a href="2010/2010.php">2010</a></li>
    </ul>

    après je l'integre dans les pages avec le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php include('includes/menu.html') ?>
    jusque la ça va aucun problème, mais quand je l’intègre dans une page qui se trouve dans un sous dossier là ça commence les problème, les liens que j'ai mis dans le fichier menu.html, ne marchent plus normalement.

    Exemple:
    j’intègre le menu dans une page qui se trouve dans un sous dossier par-exemple: "teste/index.php"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php include('../includes/menu.html') ?>
    ici le lien dois normalement aller dans ce chemin "2009/2009.php" (le dossier 2009 se trouve a la racine du serveur, a coté du dossier teste) mais là, le lien va dans le dossier "teste/2009/2009.php"

    j'ai besoin d'un peu d'aide SVP?

  2. #2
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 628
    Points
    3 628
    Billets dans le blog
    8
    Par défaut
    Une idée comme ça, vu que personne ne se précipite pour t'aider et que la réponse m'intéresse...
    Attention, je suis pas très douée en variable d'environnement, ça peut être invalidé sans problème par des gens qui s'y connaîtront mieux que moi.

    Pourquoi ne pas passer dans ton menu à des liens absolus avec une variable d'environnement de ce genre ? Bien sûr, cela implique que tu rebaptises ton menu.html en menu.php.
    Un truc dans ce goût ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo '<li><a href="'.$_SERVER['DOCUMENT_ROOT'].'/2009/2009.php">2009</a></li>';

  3. #3
    Membre habitué Avatar de Rahim-US
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2009
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2009
    Messages : 151
    Points : 134
    Points
    134
    Par défaut
    Merci beaucoup Dendrite d’avoir répondu a mon problème.
    Je vais essayer d'utiliser une variable d'environnement mais j'en suis pas sûr que ça va marcher.

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2010
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2010
    Messages : 403
    Points : 1 419
    Points
    1 419
    Par défaut
    Pour ce genre de problème vous pouvez utiliser un fichier de config, que vous créez vous-même :

    Créez un nouveau fichier "config.php" que vous appelez sur chacune de vos pages. Dedans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    $url="http://www.monsite.com";
    ?>
    Comme ça, dans chaque page où vous voulez appeler le menu, il suffira de place le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    include($url."/include/menu.html");
    ?>
    Le chemin sera ainsi renseigné à chaque fois en absolu, pas en relatif, ce qui éliminera tout problème de répertoire.

  5. #5
    Membre habitué Avatar de Rahim-US
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2009
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2009
    Messages : 151
    Points : 134
    Points
    134
    Par défaut
    Merci beaucoup pour l'astuce, je vais testé ça demain, et je passe en résolu si ça marchera bien.

    Une petite question, est-ce que je peux utilisé ce fichier de config dans un script pour enregistrer des infos par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $filename='$url."/file.dat"'

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 50
    Points : 37
    Points
    37
    Par défaut
    Une solution, qui rejoint celle de sebastiano, consiste à placer un base url dans ton header. Ensuite, tu peux faire ton include sans remonter de niveaux à partir de n'importe quelle page.

  7. #7
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    A mon avis il y a des confusions, des choses qui se mélanges, et c'est lié à la relation client/serveur qu'il y a dans un site Web.

    Il ne faut pas mettre de $_SERVER['DOCUMENT_ROOT'] quand il s'agit de créer un lien, une URL.
    Inversement, il ne faut pas mettre une URL quand on fait un include(), quand on inclus un fichier (encore que, ici c'est un peu plus nuancé, mais on va dire que c'est le cas le plus courant).


    Il y a 2 types de chemins :
    - Coté serveur
    Des chemins physiques qui sont directement lié au disque où sont installés les fichiers, tout comme Php et le serveur Web.
    Quand on inclus un fichier (include), c'est du Php et on est bien du coté serveur, du coup un chemin physique est approprié.
    C'est des chemins du genre :
    home/user/www/fichier.php
    Ou C:/wamp/www/fichier.php


    Coté Client (navigateur)
    - Des chemins virtuels, des URLs en faite (-http://domaine.com) qui sera le seul moyen pour que le Navigateur puisse pointer vers le serveur, ceci grâce au domaine.
    Si on indique ici un chemin physique (genre home/user/www/fichier.php, ou C:/wamp/www/fichier.php), le navigateur ne connait pas home/...etc... ou C:/...etc...
    En faite, le navigateur va tenter de de lancer une requête HTTP par rapport au domaine ou on se trouve, soit un truc du genre : -http://domaine.com/home/user/www/fichier.php ou alors -http://domaine.com/C:/wamp/www/fichier.php, ce qui provoquera une erreur.
    Bref ... tous ce qui est coté client ça doit être des URLs (lien, src pour les images, musique, vidéo, Css, Javascript, etc ...).


    Après, vient se rajouter la question :
    Faut il utiliser des chemins absolus ou plutôt des chemin relatif (indépendamment du chemin ou URL) ?
    Là, ça peut être un long débat, car il y a trop de paramètres en jeu pour en faire une généralité.
    On peu tout de même dire que utiliser des chemins relatifs (physique ou URLs) est courant.

  8. #8
    Membre habitué Avatar de Rahim-US
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2009
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2009
    Messages : 151
    Points : 134
    Points
    134
    Par défaut
    Merci beaucoup pour ces explication, je commence a comprendre un peu

  9. #9
    Candidat au Club
    Inscrit en
    Octobre 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Si j'ai bien compris il n'y a pas de problème avec votre include, le problème se trouve au niveau des liens de votre menu qui ne fonctionnent pas sur certaines pages.

    Alors je vous propose de mettre des liens absolu dans votre menu du genre :
    http://(nom de domaine)/2009/2009.php

  10. #10
    Membre habitué Avatar de Rahim-US
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2009
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2009
    Messages : 151
    Points : 134
    Points
    134
    Par défaut
    Merci pour vos réponses, je viens de résoudre mon problème après beaucoup de testes j'ai réussi, merci quand même pour vos réponse.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. obligé de de copier le code du bandeau, du pied de page et du menu dans toutes mes pages?
    Par cyrano_de_bergerac dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 23/02/2012, 09h21
  2. [Débutant] Objet commun utilisé dans toutes mes pages. Comment faire ?
    Par Pynouz dans le forum ASP.NET
    Réponses: 9
    Dernier message: 29/09/2011, 09h07
  3. Inclusion du menu dans toutes les pages
    Par MistyMan dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 28/02/2009, 18h28
  4. Réponses: 4
    Dernier message: 06/08/2007, 17h10
  5. Réponses: 2
    Dernier message: 01/02/2006, 12h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo