GET

L'envoie de données par la méthode GET permet de transmettre des données à une page via son URL.

1
show.php?id=3

Demande le fichier show.php et lui transmet l'information id=3.

C'est le tableau $_GET qui contient l'information.

1
$id = $_GET['id'] ?? '';

Méthodeshow.php

Réalisez la page show.php

1
<?php
2
require 'bdd.php';
3
$id = $_GET['id'] ?? '';
4
5
$personne = current(array_filter($listePersonnes, fn($p) => $p['id'] == $id));
6
7
if (!$personne) {
8
    header('location:personnes.php');
9
    exit();
10
}
11
12
$page_title = 'Afficher-' . $personne['nom'];
13
?>
14
<!DOCTYPE html>
15
<html lang='fr'>
16
17
<?php require 'head.php' ?>
18
19
<body>
20
    <?php require 'header.php' ?>
21
22
    <main>
23
        <h1>Afficher</h1>
24
25
        <section>
26
            <img src='photos/<?= $personne['photo'] ?>' alt='photo <?= $personne['nom'] ?>' />
27
            <?= $personne['nom'] ?>
28
            <?= $personne['prenom'] ?>
29
            <?= $personne['age'] ?> ans
30
        </section>
31
    </main>
32
33
    <?php require 'footer.php' ?>
34
</body>
35
36
</html>
1
current

Récupère l'élément courant d'un tableau. Ici, le premier.

1
array_filter($listePersonnes, fn($p) => $p['id'] == $id)

Filtre les personnages dont l'id est $id

1
current(array_filter($listePersonnes, fn($p) => $p['id'] == $id));

Retourne la personne dont l'id est $id.

A partir de la version 8.4 de PHP, on peut simplifier avec array_find :

1
array_find($listePersonnes, fn($p) => $p['id'] == $id);
1
if (!$personne) {
2
    header('location:personnes.php');
3
    exit();
4
}

Redirige vers la page personnes.php si l'identifiant correspond à aucune personne.

1
$page_title = 'Afficher-' . $personne['nom'];

Affiche le nom de la personne dans l'onglet de la page.

Méthodepersonnes.php

Pour appeler chaque personnage, on ajoute à la page personnes.php un lien autour de chaque photo qui pointe vers la page show.php accompagnée de l'identifiant de la personne.

1
<?php
2
require 'bdd.php';
3
$page_title = 'Personnes';
4
?>
5
<!DOCTYPE html>
6
<html lang='fr'>
7
8
<?php require 'head.php' ?>
9
10
<body>
11
    <?php require 'header.php' ?>
12
13
    <main>
14
        <h1>Afficher</h1>
15
16
        <ul>
17
            <?php
18
            foreach ($listePersonnes as $personne) {
19
                ?>
20
                <li>
21
                    <a href='show.php?id=<?= $personne['id'] ?>'>
22
                        <img src='photos/<?= $personne['photo'] ?>' alt='photo <?= $personne['nom'] ?>' />
23
                    </a>
24
                    <?= $personne['nom'] ?>
25
                    <?= $personne['prenom'] ?>
26
                    <?= $personne['age'] ?> ans
27
                </li>
28
                <?php
29
            }
30
            ?>
31
        </ul>
32
    </main>
33
34
    <?php require 'footer.php' ?>
35
</body>
36
37
</html>
1
<a href='show.php?id=<?= $personne['id'] ?>'>

Permet de générer des liens vers show.php avec l'id du personnage.