Aller au contenu

include et fichier double


Sujets conseillés

Posté

Bonjour,

J ai une page d'accueil, avec dans celle-ci un lien vers une autre page, qui doit m ouvrir une page php.

Le lien est de ce type

<a href="index.php?page=pagexxx">

et mon code php le suivant :

<?php 
if (!isset($_GET['page'])) $page= 'page'; else $page= $_GET['page'];
switch($page)
{
case 'pageacc01': include ('pagexxx.php');break;

}
?>

Ma question est la suivante : ma page s'inclue bien, mais derriere celle-ci, (a la suite donc), voila que je retrouve ma page d'accueil !!

Que dois je faire pour que seule la page demandee apparaisse en lieu et place de la page d'accueil ?

Merci a tous

Posté

Tu n'as pas mis l'intégralité de ton code, mais j'imagine fort bien que le code de ta page d'accueil se trouve sous le switch.

La première solution, sans toucher énormément à ton code, serait de mettre un die() dans chacun des éléments de ton switch.

La seconde, plus propre, serait de mettre le contenu de ta page d'accueil dans un dernier include, qui pourrait être appelé dans le default du switch (par exemple).

Posté

Bonjour,

Je n'ai pas bien compris. Où ce trouve ce code? Dans ta page index?

Si oui, c'est normal qu'elle apparaisse :)

Si tu ne veux que la page demandé, tu ne devras avoir dans ton fichier php QUE ceci :

<?php
if (!isset($_GET['page'])) $page= 'page'; else $page= $_GET['page'];
switch($page)
{
case 'pageacc01': include ('pagexxx.php');break;

}
?>

Portekoi

Posté

Merci, mais au risque de passer pour un idiot, je vois pas trop comment faire :

Je m explique :

J'ai une structure simple : haut, bas gauche et corps.

Dans le bloc corps apparaissent les elements que j appelle a partir du menu (qui lui est dans le bloc gauche)

Mais la la situation est differente !!

Ma page d accueil apparait dans le bloc corps, jusque la tout va bien. Elle se compose de 5 blocs comme l image que je fais ici :

Mon image exemple

Et dans chacun des blocs de la page accueil, j ai un lien "en savoir +" qui me renvoie une nouvelle page en lieu et place de la page accueil.

Ce que je ne comprends pas, c'est comment faire : je me doutes bien que je laisse le lien en l etat : index.php?.... mais apres ?

Je fais une page index.php et une page "en savoir plus" ?

La page index contient le code php et la page en savoir plus le contenu html ?

Quant a mon code php je le laisse pas dans ma page accueil alors ?

Desole de vous souler, mais je suis debutant, je pose des questions "con" mais j essaie simplement de comprendre pour pas mourir idiot :blush:

Merci encore

Posté

Bon, j'ai pas très bien compris ton message (je suis en pleine digestion, là), mais je vais essayer de clarifier les choses.

On commence tout simplement comme ça :

la page index.php, qui ne contiendra pas de code HTML (ou alors, juste le code identique sur toutes les pages (header, footer, menu, etc).

Ensuite, à l'endroit du contenu, tu places ton switch, tout en n'oubliant pas de spécifier une page par défaut, si on ne précise rien en GET.

Tu as d'ailleurs une bonne initiative, en ne passant pas directement les noms de fichiers en GET.

Donc, ça ressemblerait un peu à ça :

<?php
include('header.php');
include('menu.php');
if(!isset($_GET['page'])) {
$page = 'accueil';
}
else {
$page = $_GET['page'];
}
switch($page) {
case 'info':
include('page_info.php');
break;
case 'accueil':
default:
include('homepage.php');
break;
}
include('footer.php');
?>

Ensuite, tu mettras ton code HTML dans chacune des pages à inclure.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...