[PHP] Besoin d'aide - Include et conditions

cidux -  
 loute08 -
Bonjour à tous,

J'essaye de créer un site pour un groupe de musique d'amis. J'utilise un kit template car je suis assez nul en design (et je m'occuperai du design plus tard d'ailleurs)

Mon site se divise en 3 partie :
l'index qui comporte le header et le menu,
le menu de gauche avec les dates de concerts, et la partie de droite dite de contenu.

Mon but est que la partie de droite change en fonction d'ou on se trouve sur le site mais pas le header et le menu gauche. (histoire de ne pas devoir changer les dates dans toutes les pages à chaque fois)

Mon index à ceci :

      <div  id="menu"> 
        <ul>
          <li><a href="index.php?page=accueil.php">Accueil</a></li>
          <li><a href="index.php?page=band.php">Le Groupe</a></li>
          <li><a href="index.php?page=band.php">Discographie</a></li>
          <li><a href="index.php?page=band.php">Contact</a></li>
        </ul>
      </div>


Et un peu plus bas :


 $pageOK = array(
 'accueil' => 'accueil.php',
 'groupe' => 'groupe.php',
 'discographie' => 'discographie.php',
 'contact' => 'contact.php');


 if ( (isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) ) {
    include($pageOK[$_GET['page']]);   
  } else {
    include('accueil.php');   
  }


    ?>


Et mes pages contact, groupe, discographie, accueil sont de simple pages php ne comportant que du contenu.

Le problème : Il n'affiche QUE la page d'accueil et ce peut importe le bouton du menu ...

En gros il va directement dans le "else".

Que puis je faire ? J'ai presque tout essayer je ne comprends pas !!


Merci d'avance
A voir également:

3 réponses

webtotoche Messages postés 69 Date d'inscription   Statut Membre Dernière intervention   7
 
Salut !

S'il passe directement dans le else c'est que la condition testée n'est pas satisfaite :-) : tu passes accueil.php en paramètre mais la clé de $pageOK est accueil.



_
0
cidux
 
Peux tu me dire ce que je dois changer dans la condition ?
Je ne vois pas, j'ai essayé avec .php, sans, etc. Je ne trouve pas le problème

J'ai pourtant suivi les insctructions à la lettre :D


Un grand merci !
0
webtotoche Messages postés 69 Date d'inscription   Statut Membre Dernière intervention   7
 
Salut !

Tu as confondu nom des indices et contenu de la variable.

Les indices de la variable $pageOK sont nommés :

- 'accueil'
- 'groupe'
- 'discographie'
- 'contact'

Les chaines que tu passes en paramètre dans l'URL correspondent en fait à des contenus du tableau et pas au nom de l'indice. Ces chaines sont :

- 'accueil.php'
- 'groupe.php'
- 'discographie.php'
- 'contact.php'

Or tu fais le test :
 if ( (isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) )

Dans ce test PHP remplace $_GET['page'] par sa valeur, le test peut donc s'écrire isset($pageOK['discographie.php'])

Dans ton code, où as-tu vu qu'il y avait un indice nommé 'discographie.php' ? Nulle part. Ton test isset($pageOK['discographie.php']) n'est donc jamais vrai et le script bifurque vers le else.


Est-ce que cela répond à ta question ?


_
0
loute08 > webtotoche Messages postés 69 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour, j'ai vu que tu avais répondu super vite à ce poste et moi aussi j'ai besoin d'aide je suis en train de concevoir un site Internet et j'aimerais que mon index soit ma page modèle et que toutes mes autres pages php du site ne soit en fait que du texte qui s'intègre au modèle peux tu m'aider je n'y comprend rien...

MErci d'avance
0
cidux
 
Waw, ca marche !


Merci pour tes réponses super rapide et qui sont bonnes ! :)
0