Un meme squelette pour des centaines de pages

Dam -  
 Dam -
Bonjour,

Je veut un fichier qui contient tous le "contour" du site invariant à chaque pages.
Je possède une centaine de contenus ayant des nom du type : truc.php, chat.php, ...
J'aimerais qu'en tapant http://127.0.0.1:8888/monsite/chat.php J'ai le squelette du site avec chat.php en contenu.

.htaccess ?

Comment ça marche pour d'immense site type "comment ça marche" ?

Par avance merci de vos éventuel réponses, réflexions ou simplement lectures de mon problème,
Bonne fin d'après midi,
Damien.

3 réponses

avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Salut,

Tu peux utiliser un fichier principal incluant les autres.
Le fichier à inclure est indiqué en argument GET.

Après, tu peux utiliser l'URL rewriting pour ne plus voir la partie GET :
/mapage.php pointera vers /index.php?page=mapage (exemple)

Et dans index.php :
<!DOCTYPE html>
<html lang="fr">
<head>
    <!- .... ->
</head>

<body>
    <div id="header"></div>

    <div id="content">
        <?php
          $allowed = array('index', 'mapage1', 'mapage2');
          $request_page = isset($_GET['page']) ? $_GET['page'] : 'index';
          $final_page = in_array($page, $allowed) ? $page : '404.php';
          include 'pages/'.$final_page.'.php';
        ?>
    </div>

    <div id="footer"></div>
</body>
</html>
0
Dam
 
Merci ,
Est ce que c'est comme cela que l'on procède pour de très gros sites ?
(Petite parenthèse ma réel question est en dessous)
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Le principe y est, mais il existe une autre méthode.
Plutôt que d'inclure le contenu dans le corps, on peut faire l'inverse : écrire le contenu et mettre des includes autour pour insérer le menu, l'entête, le pied de page, etc.

Et les gros site ne font pas des includes, le contenu est souvent en base de données.
0
Dam
 
Merci je me coucherait un peu moins bête se soir :-)
0
Dam
 
Merci beaucoup, j'aime bien ce code avec le test sur les pages.
J'ai par contre un soucis avec L'URL rewriting ne fonctionne pas comme prévu...

Dès que j'écris :
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*)$ index.php?page=$1 [L]

quel que soit l'url tapez :
http://127.0.0.1:8888/monsite/coucou.php
http://127.0.0.1:8888/monsite/index.php
http://127.0.0.1:8888/monsite/truc.php
index.php est bien chargé mais toujours avec $_GET['page'] == 'index.php'

alors que si je met :
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^c(.*)$ index.php?page=c$1 [L]
alors :
http://127.0.0.1:8888/monsite/coucou.php marche
http://127.0.0.1:8888/monsite/cricri.php marche ...

Une idée du problème ? Easyphp ?
Encore merci pour la réponse rapide ! j'espère que vous pourrez m'aider pour la suite aussi :-)
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Essaie avec RewriteBase.
0
Dam
 
Je l'ai bien aperçu mais je n'arrive pas à déterminer comment m'en servir ?
0