steve2206
Messages postés95Date d'inscriptionlundi 20 octobre 2003StatutMembreDernière intervention30 octobre 2013
-
10 juin 2007 à 18:03
Flachy Joe
Messages postés2103Date d'inscriptionjeudi 16 septembre 2004StatutMembreDernière intervention21 novembre 2023
-
20 juin 2007 à 08:38
Salut à tous,
j'aimerai savoir comment inclure un code sur une page en fonction justement d'une page. C'est à dire que sur chaque page j'ai un code "A" et un code "variable". J'aimerai en gros que:
- si je suis sur la page "page1.php" s'affichent les code A et variable1;
- si je suis sur la page "page2.php" s'affichent les code A et variable2;
- si je suis sur la page "page3.php" s'affichent les code A et variable3;
- si je suis sur la page "page4.php" s'affichent les code A et variable4;
D'après mes faibles connaissances de débutant, j'imagine bien qu'il doit y avoir un système d'include avec des "if" et "eslse" ou else if", moi pas trop comprendre...
le pourquoi du comment c'est simplement que j'ai un div dans lequel je souhaite modifier simplement une partie, ce qui m'éviterait de créer plusieur grosses page avec ce gros div, un gain de temps, d'espace, et pratique pour s'y retrouver.
Bref, je vous remercie par anance de vos réponses.
steve2206
Messages postés95Date d'inscriptionlundi 20 octobre 2003StatutMembreDernière intervention30 octobre 2013 10 juin 2007 à 19:40
c'est plutôt comme ceci:
blablabla
if "page1.php" --> <? variable1 ?> (si je suis sur la page1.php, la variable1 s'affiche)
if "page2.php" --> <? variable2 ?>
if "page3.php" --> <? variable3 ?>
etc...
car ce code n'est qu'un div qui s'affiche. j'ai mieux pour comprendre, un petit exemple sur cette page: http://omhistorique.online.fr/index2.php?page=videos_gifs - tu dois deviner ici 2 gros "div": un à gauche et un à droite qui lui revient toujours (sauf sur la page d'accueil)
- le "div" dont je parle est celui de droite: il s'affichera sur presque toutes les pages du site, mais j'aimerai que le menu (avec vidéos, icones, logos, etc...) change en fonction des pages, à savoir:
* si je suis sur la page des vidéos, il s'affichera un menu
* si je suis sur la page des jeux, il s'affichera un autre menu
* etc...
steve2206
Messages postés95Date d'inscriptionlundi 20 octobre 2003StatutMembreDernière intervention30 octobre 2013 11 juin 2007 à 13:41
J'ai l'impression que le code qui se rapproche le plus de ce que je rechercher est le 2è de Flachy Joe:
------------------
Page.php?n= [numero de la page]
<?php include 'fixe.php' ?>
blablabla
<?php
if ($_GET['n'] ==1){
echo $variable1;
}else if ($_GET['n']==2){
echo $variable2;
}?>
-------------------------
Mais je n'ai pas compris comment l'utiliser; ce que je comprend est que je dois numéroter chaque page puis mettre ce code dans ma page de colonne fixe en précisant la variable en fonction du numéro de la page: c'est bien ça?
Et dans ce cas, le code Page.php?n=[numero de la page], c'est celui que je met sur chacune de mes pages (page1, page2, etc.)?
Pour finir, pour une 3è variable, je dois aussi utiliser un "else if" ?
Flachy Joe
Messages postés2103Date d'inscriptionjeudi 16 septembre 2004StatutMembreDernière intervention21 novembre 20231 11 juin 2007 à 19:14
Avec ce code tu n'aurais que 2 fichier php : page.php et fixe.php (ou fixe.htm d'ailleurs)
mais les liens vers les pages seraient "page.php?n=1" pour la page 1, etc
Tu peut utiliser "switch case" à la place de "if elseif"...
steve2206
Messages postés95Date d'inscriptionlundi 20 octobre 2003StatutMembreDernière intervention30 octobre 2013 12 juin 2007 à 16:55
après une recherche rapide, j'ai cru comprendre que le "switch case" ne marche que si on a une seule condition, ce qui n'est pas mon cas.
Parcontre tu m'es mis un doute: toutes mes pages doivent s'appeller 1.php, 2.php, etc ou bien j'insère le code "page.php?n=numéro" avec un numéro pour chaque page en gardant des noms du style gogo.php ou baba.htm comme nom de page?
Je vais quand même tester dès que je peux en attendant ta réponse.
steve2206
Messages postés95Date d'inscriptionlundi 20 octobre 2003StatutMembreDernière intervention30 octobre 2013 12 juin 2007 à 17:39
bon j'ai créer plusieurs pages d'essai et je me suis rendu compte par moi-même que page.php?n= devais se trouver avec le code que tu m'as donné.
Problème: j'ai essayé ceci:
steve2206
Messages postés95Date d'inscriptionlundi 20 octobre 2003StatutMembreDernière intervention30 octobre 2013 12 juin 2007 à 17:49
je pense avoir trouvé en utilisant la bonne vieille methode du array !
Dans mon test ça marche, je vais tester sur les pages de mon site et je repasse ici pour dire si ça marche.
En tout cas merci, je suis sur la bonne voie...
Flachy Joe
Messages postés2103Date d'inscriptionjeudi 16 septembre 2004StatutMembreDernière intervention21 novembre 20231 12 juin 2007 à 19:01
Ouhlala !
Bon, je vais essayer d'être plus clair.
Peut être avec un exemple :
Index.php (dans cet exemple, seul et unique fichier du site auquel les internautes auront accès):
<html>
Vous êtes sur le site du bidulomaniaque.
Les liens vers les pages : [index.php?page=1 Index], [index.php?page=blub Une autre page]
<?php
$page = $_GET['page'];
switch ($page){
default :
case '1' :
echo 'vous êtes sur l'index du site, voici le contenu de la page :
';
include 'pageindex.htm';
break;
case 'blub' :
echo 'maintenant, c'est une autre page, ici on inclue aucun fichier, tout est dans le fichier index.php [index.php?page=3&z=1 ';
break;
case '3' :
echo 'page 3
';
if ($_GET['z'] != '1'){
echo 'Pour afficher le contenu de cette page vous devez utiliser exclusivement ]ce lien';
}else{
echo 'Vous avez cliqué sur le lien exclusif.';
}
}
?>
</html>
<!-- Fin du fichier index.php -->
pageindex.htm
Index
Contenu de la page index
<!-- fin du fichier pageindex.htm -->
Donc tu code une seule et unique fois ta colonne fixe dans le fichier php et le contenu des page est inseré à la demande en fonction de la valeur de la variable $page.
steve2206
Messages postés95Date d'inscriptionlundi 20 octobre 2003StatutMembreDernière intervention30 octobre 2013 13 juin 2007 à 20:23
j'ai beaucoup médié sur ce code et j'ai cru m'appercevoir qu'à moins d'insérer les code de chacune de mes page sur l'index (ceci qui est inconcevable, même avec include car index trop lourd du coup...), c'est infaisable.
Problème: je ne souhaite modifier qu'un div de chaque page, qui se trouve au milieu d'une grosse colonne div.
Alors en fonction de ce que tu m'a donné j'ai essayé ce bout de code qui ne marche pas:
<?php
$page = $_GET['page'];
switch ($page){
default : echo '';
case 'aaa1' :
include 'http://omhistorique.free.fr/essai/menu1.php';
break;
case 'aaa2' :
include 'http://omhistorique.free.fr/essai/menu2.php';
break;
case 'aaa3' :
include 'http://omhistorique.free.fr/essai/menu3.php';
break;
}
?>
Le principe est que les pages aaa1, aaa2 et aaa3 appellent le fichier essai.php dans lequel je souhaite insérer le code ci-dessus. C'est ensuite ce code placé au bon endroit (dans le div où je veux voir le menu) qui insère le menu à l'endroit adéquat.
Mais j'avoue être un peu bloqué car mon site marche déjà avec des pseudo-frames (exemple de la page d'essai: http://omhistorique.online.fr/index2.php?page=aaa1) donc un peu perdu. J'ai l'impression d'être à la fois proche d'une solution mais aussi très loin.
Flachy Joe
Messages postés2103Date d'inscriptionjeudi 16 septembre 2004StatutMembreDernière intervention21 novembre 20231 13 juin 2007 à 20:41
aaa1.htm :
<html>
<?php
$page = 'aaa1';
include 'menu_includer.php'
?>
div aaa
</html>
menu_includer.php :
<?php
switch ($page){
default : echo '';
case 'aaa1' :
include 'http://omhistorique.free.fr/essai/menu1.php';
break;
case 'aaa2' :
include 'http://omhistorique.free.fr/essai/menu2.php';
break;
case 'aaa3' :
include 'http://omhistorique.free.fr/essai/menu3.php';
break;
}
?>
Mais je me demande si tu cherche pas à faire compliqué pour un truc tout bête...
steve2206
Messages postés95Date d'inscriptionlundi 20 octobre 2003StatutMembreDernière intervention30 octobre 2013 14 juin 2007 à 17:59
C'est vrai que je pourrais inclure tout simplement le menu, mais il faudrait alors que j'insère toute la colonne qui va avec. Et dans cette colonne, seul le menu change, alors ça me ferait gagner pas mal de place par page si je trouvais le script qui ne me ferait changer "que" le menu, sans avoir à remettre le code de toute la colonne!
Justement le script que tu m'a donné je l'ai essayé: il marche à moitié car lorsque je suis sur la page aaa1, le menu s'affiche correctement mais lorsque je suis sur aaa2, c'est toujours le menu1 qui s'affiche. Ton code a pourtant l'air très correct et ce n'est pas une erreur de ma part non plus (du genre avoir mis le lien vers le menu1 lorsque je suis sur la page aaa2, avant que tu poses la question...)
Le code que tu m'as donné reconnais bien le case 'aaa1' mais c'est comme si le break stoppait totalement la suite du code, ce qui n'est pas normal, je te l'accorde. Et donc comme je disais, même sur la page aaa2 (case 'aaa2'), c'est le menu1 qui s'affiche.
Je me demande s'il n'y a pas un problème avec la variable $page ou bien si je rentre le bon url. L'url de base de aaa1 est http://omhistorique.online.fr/index2.php?page=aaa2. J'ai essayé en ajoutant &page=aaa1 derrière mais ça marche pas. En effet, la variable des pseudo-frame de mes pages est $pageOK. J'ai donc aussi essayé avec ceci mais rien n'y fait. D'ailleurs pour info, voici comment j'utilise les pseudo-frame via ma page index si ça peut t'aider:$pageOK array( 'aaa1' > 'essai/aaa1.php',
'aaa2' => 'essai/aaa2.php',
'aaa3' => 'essai/aaa3.php',
if ( (isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) ) {
include($pageOK[$_GET['page']]);
} else {
include('index2/z_index_milieu.php');
}
Flachy Joe
Messages postés2103Date d'inscriptionjeudi 16 septembre 2004StatutMembreDernière intervention21 novembre 20231 15 juin 2007 à 11:47
Mais au fait, qu'est ce que c'est que ces URL dans les includes ??
De la doc PHP :
Si les [file:///home/florian/Documents/documentation/phpdoc/html/ref.filesystem.html#ini.allow-url-fopen Gestionnaires d'URL]
sont activés dans PHP (ce qui est le cas par défaut),
vous pouvez localiser le fichier avec une URL (via HTTP ou
bien avec un gestionnaire adapté : voir [file:///home/florian/Documents/documentation/phpdoc/html/wrappers.html Annexe M]
pour une liste des protocoles), au lieu d'un simple chemin
local. Si le serveur distant interprète le fichier comme du code
PHP, des variables peuvent être transmises au serveur distant
via l'URL et la méthode GET. Ce n'est pas, à strictement
parler, la même chose que d'hériter du contexte de variable.
Le fichier inclus est en fait un script exécuté à distance,
et son résultat est inclus dans le code courant.
Si tes fichiers à inclures sont sur le même serveur, utilise leur chemin local et non une URL.
Je sais pas si ça arrangera quoi que ce soit mais bon...
steve2206
Messages postés95Date d'inscriptionlundi 20 octobre 2003StatutMembreDernière intervention30 octobre 2013 19 juin 2007 à 17:37
J'ai trouvé la solution sur le site du zéro. Je leur ai exposé le problème à plat (sans les conseils que tu m'as donné pour comparer et arranger tout seul au besoin afin de progresser un petit peu.
Le problème ne venait pas du chemin que j'ai donné à mes menus (j'avais essayé), chemin que j'avais mis par simplicité personnelle et que j'aurai arrangé au final comme je vient de le faire maintenant.
En fait tu m'avais en partie donné la réponse: visiblement le problème venait de ma première pseudo-frame: il fallait ajouter un if avec isset avant le switch/case avec la variable $_GET.
Donc pour ceux que ça interresse et qui sont dans mon cas, voici la solution:
if(isset ($_GET['page']))
{
$page= $_GET['page'];
switch($page)
{
case page1 :
echo 'MenuA';
break;
casepage2 :
echo 'MenuB';
break;
}
}
// et ainsi de suite...
En tout cas un grand merci pour tout le mal que tu t'es donné pour moi. Tu m'as permis d'appronfondir ma connaissance des if et de découvrir les switch dont j'avais à peine entendu parlé ou vu une fois ou deux.
Grâce à tes conseils je saurai probablement me débrouiller tout seul la prochaine fois sans avoir à crier à l'aide (même si je ne doute pas que je reviendrai bientôt pour autre chose! mdr). Encore merci.