Un meme squelette pour des centaines de pages

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

  1. 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
    1. 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
    2. 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
    3. Merci je me coucherait un peu moins bête se soir :-)
      0
  2. 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
    1. Essaie avec RewriteBase.
      0
  3. Je l'ai bien aperçu mais je n'arrive pas à déterminer comment m'en servir ?
    0