Problème liens Menus depuis une autre page que l'index

Fermé
illios - 30 déc. 2013 à 01:49
theshadoo Messages postés 786 Date d'inscription samedi 26 mai 2007 Statut Membre Dernière intervention 3 mai 2016 - 30 déc. 2013 à 20:34
Bonsoir

J'ai créé un fichier Menus.php, qui contient les liens vers différents liens. Il s'agit de mon menu, présent sur toutes les pages de mon site, que j'intègre grâce à include().

Depuis l'index, ca marche très bien.

Problème: les liens sont fait comme si on était à l'index. Or depuis une autre page ca ne marche pas.

Comment résoudre se problème ? Une astuce que vous utilisez ?
A voir également:

4 réponses

theshadoo Messages postés 786 Date d'inscription samedi 26 mai 2007 Statut Membre Dernière intervention 3 mai 2016 123
30 déc. 2013 à 02:28
Je ne sais pas comment tu as fait tes liens et sans voir réellement c'est un peu difficile (par pitié ne nous balance pas un pavé de code four tout et démerdez vous avec les années c'est peu soutenable sincèrement).

As-tu mis des liens en relatif ?? (connaître la différence entre relatif et absolue c'est la base).

Si les liens de ton menu font référence à des pages .php (ou html & autre) tu part de la racine de ton site donc "nom de domaine" théoriquement.

mes liens de menu exemple :
- home = home.php
- about = about.php
- portefolio = portfolio.php
- contact = contact.php

Pas de "/" avant le lien de la page si non tu remontes d'un cran, ce qui fait que le serveur ne va pas chercher au bon endroit c'est sûr.

Si tu utilises ta pages index comme front-page (ce qui serait le plus logique) alors tout va partir de la page index.php et donc.

- home = index.php?page=home
- about = index.php?page=about
- portefolio = index.php?page=portefolio
- contact = index.php?page=contact

Du coup il te faudra créer une fonction par exemple qui sera le gestionnaire de menu où page est la variable envoyé en get et sa valeur correspondra au nom d'une page physique existante ou bien du nom de la page et son contenu qui serait stocké en base de donnée.

Si c'est le nom d'une page physique alors tu auras juste le contenu et non tout le code html d'une page avec le head, body etc..
Et par conséquent tu "include" la page en rapport.

Sur un petit site par exemple.

avec switch ou if :
switch($page) {
case : "home"
include 'home.php';
break;
etc...
}

Et ne surtout pas oublier de sécuriser cela, c'est à dire vérifier aussi que la fichier existe et correspond au schéma que tu auras établie en quel cas n'importe qui pourrait passer un nom de fichier après ta variable index.php?page=lenomd'unfichier et hope j'ai tout le code donc grosse faille de sécurité.

Voilà tu as tout pour pouvoir régler ton problème.
1
Ouff !

J'utilise uniquement des liens relatifs.

Dans mon index, j'inclus le fichier Menus.php suivant:


<div class="Menus">
<nav>
<ul>
<li><a href="index.php">Actus</a></li>
<li><a href="Sections/Tutos.php">Tutos</a></li>
<li><a href="Sections/Telechargements.php">Téléchargements</a></li>
<li><a href="Sections/TaskForce.php">Task Force</a></li>
<li><a href="Sections/Apropos.php">A propos</a></li>
</ul>
</nav>
</div>

Ainsi ces liens fonctionnent depuis l'index.

Mais lorsque je change de page en cours, les liens ne fonctionnent plus.

J'ai compris d'où viens l'erreur, mais je ne sais pas comment faire.

Peux tu m'expliquer ca ?

avec switch ou if :
switch($page) {
case : "home"
include 'home.php';
break;
etc...
}
0
Up :/
0
theshadoo Messages postés 786 Date d'inscription samedi 26 mai 2007 Statut Membre Dernière intervention 3 mai 2016 123
30 déc. 2013 à 20:34
Cela pourrait être avec if si tu préfères que switch ok ?

en fait cela signifie :
switch($page) => lorsque je rencontre la variable $page envoyé en get donc tu là présente comme tu veux $_GET['page']

case: "home" => dans le cas de la vriable home et bien tu mets en relation home et ta page en question.

Exemple Tutos:
Ton fichier tutos.php comportera juste le contenu dont tu as besoin.
variable $_GET['pages'] = "tutos"
et "tutos" corresponds à ta page tutos.php.

Tu connais les includes et tu sais comment utiliser les variables envoyé par url avec $_get donc tu devrais arriver à comprendre le fonctionnement.
0