Un meme squelette pour des centaines de pages

Fermé
Dam - 27 juin 2011 à 15:38
 Dam - 27 juin 2011 à 23:02
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 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 498
27 juin 2011 à 19:40
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
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 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 498
27 juin 2011 à 22:53
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
Merci je me coucherait un peu moins bête se soir :-)
0
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 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 498
Modifié par avion-f16 le 27/06/2011 à 22:54
Essaie avec RewriteBase.
0
Je l'ai bien aperçu mais je n'arrive pas à déterminer comment m'en servir ?
0