L’inclusion de page dynamique en PHP !

Comment inclure une page dynamiquement en PHP, .htaccess en bonus !

Qu’est-ce qu’un appel dynamique de page ?

Un appel dynamique en php est simplement un chargement d’une page en fonction de la demande sans devoir à bouger de l’index, et ainsi faciliter la réécriture d’URL avec htaccess.
C’est à dire, imaginons que je veuille la page ‘actualites.php’, la manière qui vous viens à l’esprit serait de faire un lien avec en url : ‘http://monsite.com/actualites.php’. Nous allons voir comment retirer ce .php et faire de la réécriture afin de pouvoir naviguer vers : http://monsite.com/actualites.

Commençons par le début

A la place de : http://monsite.com/actualites.php, mettons plutôt :

<pre lang="html">
<a href="http://monsite.com/index.php?p=actualites">Actualites</a>
</pre>

Rassurez vous, l’url est beaucoup plus moche, mais ça va changer 🙂

Ensuite passons sur l’index.php, nous allons vérifié si un paramètre “p” est défini et qu’est-ce qu’il y à dedans :

<?php
    if(isset($_GET['p'])){
        $p = $_GET['p'];
    } else {
        $p = 'accueil';
    }
?>

Nous vérifiions si le paramètre ‘p’ est défini
Si oui, nous mettons la valeur du paramètre ‘p’ dans la variable $p
Sinon, la variable $p sera égale à “accueil”

Nous allons maintenant créer un dossier nommé ‘pages’, ou comme bon vous semble. Nous allons créer deux nouvelles pages :

  • accueil.php
  • actualites.php

Nous allons aussi rajouter un fichier 404.php à la racine.

Voici à quoi votre arborescence devrait ressembler

Nous allons maintenant créer un petit menu afin de pouvoir naviguer.

Nous allons créer un dossier inc et y créer un fichier menu.php.

Nous allons mettre de simple liens dans menu.php :

<a href="./index.php?p=accueil">Accueil</a> -
<a href="./index.php?p=actualites">Actualits</a> - 
<a href="./index.php?p=rien_du_tout">Fausse route..</a>

Dans les fichiers : accueil.php et actualites.php, nous allons juste y mettre un titre h1 avec le nom de la page.

Passons à notre index, il faut maintenant pouvoir voir ses pages avec notre menu.

Nous allons donc commencer par créer une page html de base juste :

<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>YS | Tutoriel Inclusion Dynamique</title>
</head>
<body>
   
</body>
</html>

Ensuite nous allons insérer le code afin de récupérer le paramètre ‘p’ juste en dessous de la balise html :

<!DOCTYPE html>
<html lang="fr">
    <?php
        if(isset($_GET['p'])){
            $p = $_GET['p'];
        } else {
            $p = 'accueil';
        }
    ?>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>YS | Tutoriel Inclusion Dynamique</title>
</head>
<body>
  
</body>
</html>

Et dans notre body, nous allons inclure nos pages dynamiquement :

<!DOCTYPE html>
<html lang="fr">
    <?php
        if(isset($_GET['p'])){
            $p = $_GET['p'];
        } else {
            $p = 'accueil';
        }
    ?>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>YS | Tutoriel Inclusion Dynamique</title>
</head>
<body>
   <?php
    require_once('./inc/menu.php');

    $file = "./pages/" . $p . ".php";
    if (file_exists($file)) {
        require_once($file);
    } else {
        require_once('./404.php');
    }
    ?>
</body>
</html>

On inclut d’abord le menu.
On déclare une nouvelle variable ‘$file’ qui aura pour valeur le chemin pour accéder à la page.
Ex: Si le paramètre ‘p’ est égale à ‘actualites’, alors la variable ‘$file’ aura pour valeure : ‘./pages/actualites.php’.
Ensuite on vérifie que le fichier demandé existe bien, sinon, on aura une erreure..
Si il éxiste, alors nous l’incluons.
Sinon, on affiche la page 404.php.

Vous pouvez tout sauvegarder et essayer !

Petit rappel :

L’arborescence :

Le code :

menu.php

<a href="./index.php?p=accueil">Accueil</a> -
<a href="./index.php?p=actualites">Actualits</a> - 
<a href="./index.php?p=rien_du_tout">Fausse route..</a>

accueil.php

<h1>Accueil</h1>

actualites.php

<h1>Actualits</h1>

404.php

<h1>404</h1>

Rendu visuel :

Accueil

Actualités

La fausse route

Et voilà, nous avons inclus des pages dynamiquement !

Nous pouvons rendre l’url plus joli cependant.

Attention, le .htaccess en localhost peut être très capricieux..

Nous allons donc créer un nouveau fichier à la racine : .htaccess :

Nous allons commencer par activer le réécriture :

A insérer dans le .htaccess

RewriteEgine On

#Rewrite URL
RewriteRule ^actualites$ index.php?p=actualites

Nous avons ajouter une règle de réécriture, celle ci va rediriger une url comme : http://monsite.com/actualites vers http://monsite.com/index.php?p=actualites
Tout ceci en transparent bien sûr, l’url affiché à l’internaute sera : http://monsite.com/actualites, mais, la réelle URL est bien http://monsite.com/index.php?p=actualites 🙂

Voici notre nouveau menu donc :

<a href="./index.php">Accueil</a> -
<a href="./actualites">Actualits</a> - 
<a href="./index.php?p=rien_du_tout">Fausse route..</a>

Et voilà, nous savons maintenant comment inclure des pages dynamiquement en PHP, et comment réécrire les urls !

Au prochain tuto ! 🙂

By root

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.