Salut,
hello,
fuzzyline,
je pense que tu es dans les bras de morphée ou que tu t'y prépares...
donc ce que je te dis là est pour demain, inchallah (ou si dieu le veut, c'est selon) :
alors voilà, c'est bien ce que je craignais, ta solution, qui semble bien être la résolution de mon problème, est là sous mes yeux et je suis complètement largué
il me manque des passerelles pour passer de ma logique simpliste à ta logique de codeur fou

, et il faudrait, si j'ose, que tu t'appuies sur les noms et les termes que j'attribue aux éléments de ma question pour me conduire par la main jusqu'à la lumière...
Je comprendrais que ce soit trop demander.
Dans ce cas, je mettrais "résolu" et je concocterais une solution plus artisanale...

Quoiqu'il en soit, merci pour ce que tu as déjà fait !
Je reprends tes exemples mais sans HEREDOC je déteste ca, je trouve que ca rend illisible le code.
Info: Fais une séparation plus correcte entre code php et script html.
<!-- appel du tableau identifiant la page demandée via un lien des menus -->
<?php include("fonction_pages.php"); ?>
Bon, déja tu peux modifier par: (je profite pour tout passer en php c'est plus clair)
Et je me permets, du reste, de modifier ta forme d'appel et nom de tes variables mais c'est la seule
façon d'être compréhensible et surtout d'être lisible:
Page: index.php
<?php
$pageName = "TU RECUPERE LE NOM DE LA PAGE OU TU ES VIA $_SERVER";
/**
* Chargement d'un fichier contenant le menu
*/
include("menu.php");
$menu = getMenu();
/**
* Chargement d'un fichier contenant le header
* oubli pas qu'une fois revenu de la fonction le nom de la page peut avoir
* changé suite à la détection d'une erreur. En ce cas $pageName = false
*/
include("entete_index.php");
$header = getHeader($pageName);
/**
* Chargement d'un fichier contenant TOUS les body de tes pages
*/
include("fonction_pages.php");
$body = getBody($page);
/**
* Assemblage du container html et affichage
* la variable employée: $cde correspont à ton script html
*/
$cde = "<!DOCTYPE ...>";
$cde .= "<html>\n";
$cde .= " <head>\n";
$cde .= $meta
$cde .= " </head>\n";
$cde .= " <body>\n";
$cde .= $body;
$cde .= " </body>\n";
$cde .= "</html>\n";
echo $cde;
?>
Page: menu.php
<?php
function getMenu()
{
// Les liens sont placés dans la partie "fragment" de l'url mais peuvent
// être lancés de manières directe ex: <a href="./REPERTOIRE/accueil"> en
// ce cas prévois d'indiquer le nom du répertoire ou les pages se trouvent
// Autre cas possible: le rewriting mais plus complexe au vu de tes connaisssances.
// http://www.webrankinfo.com/dossiers/debutants/url-rewriting
$cde_menu = "";
$cde_menu ="<ul>\n";
$cde_menu =" <li>\n";
$cde_menu =" <a href="./index.php?page=accueil">Accueil</a>\n";
$cde_menu =" </li>\n";
$cde_menu =" <li>\n";
$cde_menu =" <a href="./index.php?page=dowload">Download</a>\n";
$cde_menu =" </li>\n";
$cde_menu =" <li>\n";
$cde_menu =" <a href="./index.php?page=login">Login</a>\n";
$cde_menu =" </li>\n";
$cde_menu ="</ul>\n";
return $cde_menu;
}
?>
Page: entete_index.php
<?php
/**
* Je réceptionne l'argument en référence, d'ou le &
* ca me permet ainsi de le modifier s'il y a une erreur d'acces (404).
*/
function getHeader(& $pageName)
{
// J'ai mis n'importe quoi, hein, mais bon t'auras compris le principe.
$head ="";
$head .= "<meta http-equiv=content-type content="text/html; charset=UTF-8">/>\n";
$head .= "<meta http-equiv="Content-Language" content="fr">\n";
$head .= " <title>\n";
/**
* Assignation de la variable par défaut, ca fait gagner du temps
*/
$title = "Unknow page, ERROR 404 !!!";
/**
* Vérification du nom de la page pour assignation du titre
* s'il ne trouve pas alors $titre reste inchangé
*/
switch($pageName)
{
case accueil:
$title = "Page d'accueil, welcome in my world !\n";
break;
// Restant un exemple je squize la fin des choix, t'auras compris le principe
// à toi de remplacer les xxx et ajouter des case
case xxx:
.
.
.
break;
default:
// si ca passe ici c'est que le nom de la page n'existe pas
// dans le choix donc on indique l'erreur en modifiant la variable
// d'argument, celle-ci vaudra: FAUX.
$pageName = false;
}
$head .= $title."\n";
$head .= " </title>\n";
$head .= "<link rel="stylesheet" type="text/css" href=./css/general_css.css">\n";
return $head;
}
?>
Page: fonction_pages.php
<?php
function getBody($pageName)
{
if (!$pageName) $pageName = "404";
$body = "";
/**
* Enregistre la partie déterminé par l'argument dans la variable $body
* le code peut être direct comme ici ou il peut etre chargé via un include
* ex: include ($pageName."php") getData ...etc
* ou peut être du script html ex: $fScript = fopen($pageName."htm")
* T'auras compris le principe
*/
switch($pageName)
{
case accueil:
$body .= "<h1>\n";
$body .= " Hello world, zet à l'accueil...\n";
$body .= "</h1>
break;
case 404:
$body .= "<h1>\n";
$body .= " Perdu, Page inconnue... Réessaie...\n";
$body .= "</h1>
break;
}
return $body;
}
?>
Pas le temps de faire le footer mais le principe reste le même.
J'ai tenté d'être le plus didactique possible mais bon, certain termes peuvent t'échaper,
seul une lecture attentive de tutos ou même de sources pourront te renseigner.
Je repasse plus tard, bon code @+
