Php : Includes

box -  
 box -
Bonjour,

Je viens vers vous en espérant avoir un petit peu d’aide pour la prochaine version de mon site web. Je ne suis pas un spécialiste dans les codes php du tout et je me retrouve face à un problème concernant les « includes ».
Voilà mon souci :

Site encore simple de forme avec en tête menu à gauche et en haut corps et pied de page. J’arrive à mettre en include ma page d’accueil dans le corps :

Corps nomé : accueil.php et l’include inc_accueil.php
Donc dans mon corps ce trouve le code suivant :

<div id="corp">
<?php
include("inc_accueil.php");
?>
</div>

Ce qui marche très bien pour cette page ci. Mais mon problème est le suivant : En fait dans mon menu du haut qui est lui aussi en include dans mon corps (menu_haut.php) possède plusieurs liens qui représentent les parties de mon site. Malheureusement je n’arrive pas à faire une navigation de ce menu dans mon corps. En fait que les pages qui sont liées à ce menu s’ouvrent dans mon corps.
En effet je souhaite un site avec une seule mère et ses pages changeantes dans ce corps.
Donc :

Mon menu sur ma mère est codé ainsi :
<!--menu haut-->
<div id="navcontainer">
<?php
include("menu_haut.php");
?>
</div>
<!--menu haut-->

Qui celui-ci est codé :
<ul id="navlist">

<li id="active"><a href="#" id="current">Accueil</a></li>

<li><a href="templates/dossier/page.php " target="_parent">Partie 1</a></li>

<li><a href="#">partie 2 </a></li>

<li><a href="#">Partie 3</a></li>

<li><a href="#">Partie 4</a></li>

<li><a href="#">Partie 5</a></li>

<li><a href="#">Partie 6</a></li>

</ul>

Donc je n’arrive pas à mettre cette page.php dans mon corps.
Est-ce que vous voyez le souci ? Ou avez vous d'autres questions ?

Merci de votre aide ^^
A voir également:

12 réponses

Estyaah Messages postés 256 Statut Membre 34
 
j'ai fait un site qui est un peu dans le même principe. Pour ma part, j'utilise la méthode GET pour savoir quelle pae inclure dans le coprs. Je vais te mettre un extrait :

Dans mon fichier index.php, j'ai ce bout de code, qui me permet d'inclure une autre page dans la partie nommée "frame" :

<div class="frame">
<?
if(! isset($_GET['page'])) // si la variable 'page' est vide, alors
{
include("accueil.php"); // sélectionne la page 'accueil.php'
}
else
{
$page = $_GET['page']; // on récupère la valeur de la page et on la met dans la variable 'page'
include("$page.php");
}
?>

</div>


Un lien vers une nouvelle page se fait alors ainsi :

<a href="index.php?page=accueil">Accueil</a>, ou <a href="index.php?page=page">Page insérée</a>

J'espère que ça t'aidera !
0
box
 
Ouïe Ouïe Ouïe ... j'essaye de comprendre ta méthode mais je me pose une question :

Je vais avoir une bonne centaines de pages à faire apparaitre dans ce corps, es que je doit coder chaque GET pour chaque page ? oO

Merci de ta réponses en tout cas :-)
0
Estyaah Messages postés 256 Statut Membre 34
 
mon exemple t'a peut être induit en erreur :

la première partie permet d'incure une page si la variable passée en get est vide (la première fois que tu arrive sur le site) :

if(! isset($_GET['page'])) // si la variable 'page' est vide, alors
{
include("accueil.php"); // sélectionne la page 'accueil.php'
}

C'est la seconde partie qui permet d'inclure la page que tu veux :

{
$page = $_GET['page']; // on récupère la valeur de la page et on la met dans la variable 'page'
include("$page.php");
}

$_GET['page'] est renseigné dans ton lien.

Par exemple, tu as un menu comme ceci :

accueil
dossiers
images
test

Pour le menu, ce sera codé comme cela :

<a href="index.php?page=accueil">Accueil</a><br>
<a href="index.php?page=dossiers">Dossiers</a><br>
<a href="index.php?page=images">Images</a><br>
<a href="index.php?page=test">n'importe quoi</a><br>

Quand tu clique sur le lien, cela charge la page index.php (c'est ma page principale, équivalente à ta page "accueil.php"), avec une variable page dont la valeur est spécifiée à droite du égal.

J'espère que c'est plus clair... Sinon, n'hésite pas à poser des questions, je suis à ta disposition !
0
box
 
Alors j'ai fait des tests et ça ne marche pas ... J'aimerais avoir plus de précisions sur quelque détails :

Pourquoi dans les lien du menu mettre "index.php" ?
En testant sur le navigateur il me dit que des erreurs sont présentent, mais comprend pas pourquoi ?

Je suis désolé mais j'ai du mal à capter oO
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Estyaah Messages postés 256 Statut Membre 34
 
En fait, la méthode que j'utilise est complètement différente de la tienne. C'est pour cela que tu as sans doute du mal a comprendre.

dans mes liens, je met 'index.php', car c'est cette page qui contient une autre page affichée à l'intérieur.

si je met :
index.php?page=page_inclue

j'aurais mon entête, mes menus, mon pied de page, et au milieu (le conteneur qui s'appelle "frame" chez moi), la page "page_inclue.php"

Je pense que ce doit être possible de faire sans préciser le "index.php", mais je n'ai pas réfléchit à cette éventualité (car ça marche bien comme cela, et surtout, le code n'est pas trop lourd).


Pourrais-tu lister les erreurs que tu as, ainsi que regarder dans le fichier log (tail -f /var/log/httpd/error.log) quelles parties sont incriminées?

Je vais tout de même essayer te montrer ce que ça pourrait être pour toi :

<!--menu haut-->
<div id="navcontainer">
<ul id="navlist">
<li><a href="accueil.php?page=inc_accueil">Accueil</a></li>
<li><a href="accueil.php?page=partie1">Partie 1</a></li>
<li><a href="accueil.php?page=partie2">partie 2 </a></li>
<li><a href="accueil.php?page=partie3">Partie 3</a></li>
<li><a href="accueil.php?page=partie4">Partie 4</a></li>
<li><a href="accueil.php?page=partie5">Partie 5</a></li>
<li><a href="accueil.php?page=partie6">Partie 6</a></li>
</ul>

</div>


<div id="corp">
<?php
if(! isset($_GET['page'])) // si la variable 'page' est vide (on n'a pas encore cliqué sur un lien), alors
{
include("inc_accueil.php"); // sélectionne la page 'inc_accueil.php' pour l'insérer dans la page "mère"
}
else
{
$page = $_GET['page']; // on récupère la valeur de la page et on la met dans la variable 'page' (par exemple : partie3)
include("$page.php"); // $page contient alors une valeur précisée au dessus
// (par exemple : $page = partie3, ce qui donne partie3.php)
}
?>
</div>
0
box
 
Et bien Estyaah j'ai mieux compris et ça à marcher sur une page :D ! (Si je pouvais je te payerais une bonne bouteille car tu viens de remonter le morale à toute l'équipe xD)

Donc je peux maintenant bien lié toute mes pages dans mon include de mon corps ?
Et es que ce code est sécurisé pour ma bdd ?

En tout cas ce genre de manipulation demande bien de la concentration et de la précision ^^ Encore mille merci !
0
Estyaah Messages postés 256 Statut Membre 34
 
Pour la BDD, je ne peux malheureusement pas t'aider, car je n'en ai pas implémenté sur mon site... Et je ne peux rien t'affirmer ou t'infirmer, car mon expérience avec la BDD est plutôt mitigée...
0
box
 
Ok en tout cas je te remercies énormément c'est très agréable ! Il me reste a trouver comment faire changer mon menu de gauche maintenant par rapport au menu du haut. Si dés fois tu as une idée ? :

Juste un menu placé à gauche, qui me permettra de présenter les sous partis, comment le faire changer avec les pages includes ?

En tout cas encore merci merci et merci :D
0
Estyaah Messages postés 256 Statut Membre 34
 
Je ne pense pas que ce soit plus compliqué :

<!--menu haut-->
<div id="navcontainer">
<ul id="navlist">
<li><a href="accueil.php?menu=inc_accueil">Accueil</a></li> // je prend une autre variable que page, tu vas voir pourquoi après
<li><a href="accueil.php?menu=titre1l">titre1</a></li>
<li><a href="accueil.php?menu=titre2l">titre2</a></li>
</ul>

</div>

<div id="menugauche"> // on crée un ID menugauche
<?php
if(! isset($_GET['menu'])) // si la variable 'menu' est vide (on n'a pas encore cliqué sur un lien), alors
{
include("inc_accueil.php"); // sélectionne la page 'inc_accueil.php' pour l'insérer dans le menu
}
else // sinon, on récupère la valeur qui correspond au lien sur lequel on aura cliqué
{
$menu = $_GET['menu'];
include("$menu.php");
}

?>
</div>

<div id="corp">
<?php
if(! isset($_GET['corp'])) // si la variable 'corp' est vide (on n'a pas encore cliqué sur un lien), alors
{
include("partie1"); // sélectionne la page 'inc_accueil.php' pour l'insérer dans la page "mère"
}
else
{
$corp = $_GET['corp'];
include("$.corp.php");
}
?>
</div>


On va dire que tes pages "inc_accueil.php"," titre1.php" et "titre2.php" sont construites de la même manière (exemple: titre1.php) :

<html>
<head>
<title>Titre 1, c'est super</title> // partie qui s'affiche dans la barre du au du navigateur)
</head>
<body>

<ul id="navlist">
<li><a href="accueil.php?menu=$_GET['menu"]&corp=partie1">Partie 1</a></li>
<li><a href="accueil.php?menu=$_GET['menu"]&corp=partie2">partie 2</a></li>
<li><a href="accueil.php?menu=$_GET['menu"]&corp=partie3">Partie 3</a></li>
<li><a href="accueil.php?menu=$_GET['menu"]&corp=partie4">Partie 4</a></li>
</body>
</html>



Voilà, je n'ai pas testé, mais je pense qu'a part quelques coquilles, ça devrait passer...
0
box
 
Bon j'ai testé mais ça ne marche pas; en fait la structure est ainsi :

<div id="leftcol">
<h3>Navigation</h3>

<div id="navcontainerr">
<?php
include("inc_nav.php");
?>
</div>
</div>

et l'include "inc_nav.php" est ainsi :

<ul>

<li><a href="#">Link 1</a></li>

<li><a href="#">Link 2</a></li>

<li><a href="#">Link 3</a></li>

<li><a href="#">Link 4</a></li>

<li><a href="#">Link 5</a></li>

<li><a href="#">Link 5</a></li>

</ul>


Donc pare exemple, dans mon menu en haut j'ai fait deux liens pour le moments, le premier "accueil" qui est en fait "inc_accueil.php" et le second que l'on va nommer "tr.php" qui s'ouvre donc dans mon corps quand je clique sur le menu du haut. Ce que j'aimerais c'est quand dans ce menu de gauche des - sous parties - apparaisent ; donc la partie "tr" est ouverte et là a gauche arrive - tr1, tr2, tr3 ...-

J'espère que c'est plus clair de la façon dont le je l'ai expliqué. Merci de ton soutiens ;)
0
Estyaah Messages postés 256 Statut Membre 34
 
En fait, je ne comprend pas ta méthode, car pour moi, elle n'est pas dynamique. Tu ne va pas pouvoir intégrer n'importe quelle page... En fait, j'ai un peu de mal a voir car je n'ai pas trop l'habitude de bosser sans tester ^^, ni savoir à quoi ça va servir ! Si tu veux un coup de main, donne moi l'adresse du site en privé (ou par mail), voire ton adresse msn... Enfin, c'est toi qui vois !
0
box
 
Ok pour MSN, je te donnes une adresse qui me sert pour les personnes visitants mon site qui souhaites parler avec moi donc elle n'est pas privée. Et une fois connecter ensemble a cette adresse je te rentre dans mon adresse perso.

Enregistre celle là : dreams.croft-at-hot.fr

-at- = @ et hot = hotmail ;) Merci !
0