GET

L’envoi de données par la méthode GET permet de transmettre des informations sur un utilisateur à une page via son URL.
utilisateur/show.php?id=3
Il demande le fichier utilisateur/show.php en lui transmettant l’information id=3.
C’est le tableau $_GET qui contient cette information.
$id = (int)($_GET['id'] ?? 0);
Dans le cas où l’information n’existe pas, l’id de l’utilisateur reçoit la valeur 0.
Méthode : utilisateur/show.php
Nous réalisons le fichier utilisateur/show.php
// ============================== // LIEN VERS LES DONNÉES // ==============================$db = require '../bdd.php';
// ==============================// RÉCUPÉRATION DE L’ID // ==============================$id = (int) ($_GET['id'] ?? 0);
// Recherche de l'utilisateur correspondant$utilisateur = null; // Valeur par défaut si aucun utilisateur trouvé
foreach ($listeUtilisateurs as $u) {
if ($u['id'] == $id) {
$utilisateur = $u;
break; // On a trouvé l'utilisateur, on sort de la boucle
}
}
// Redirection si l'utilisateur n'existe pasif (!$utilisateur) {
header('location:../utilisateur/index.php');
exit();}
// ==============================// VARIABLES POUR LA VUE// ==============================// Chemin de base pour les inclusions$page_base = '../';
// Titre dynamique de la page$page_title = "Afficher-{$utilisateur['nom']}";
// Feuilles de styles spécifiques à la page$page_styles = ['utilisateur', 'card'];
<html lang='fr'>
require "$page_base/head.php"
<body>
require "$page_base/header.php"
<main>
<h1>Afficher</h1>
$card = [
'src' => $utilisateur['photo'],
'alt' => "photo de {$utilisateur['nom']} {$utilisateur['prenom']}",
'figcaption' => "{$utilisateur['nom']} {$utilisateur['prenom']} - {$utilisateur['age']} ans"
];
require("$page_base/components/card.php");
</main>
require "$page_base/footer.php"
</body>
</html>
A partir de la version 8.4 de PHP, on peut simplifier la recherche de l'utilisateur avec array_find :
$utilisateur = array_find($listeUtilisateurs, fn($u) => $u['id'] == $id);
if (!$utilisateur) {
header('location:../utilisateur/index.php');
exit();}
Redirige vers la page utilisateur/index.php si aucun utilisateur ne correspond à l’identifiant. L'url est relative à la page utilisateur/show.php.
Méthode : utilisateur/index.php
Pour permettre l’accès à la page de détail de chaque utilisateur, nous ajoutons un lien autour de la balise <figure> dans le fichier components/card.php.
C’est la page utilisateur/index.php qui fournit l’URL via la variable $card.
Ce lien redirige vers utilisateur/show.php en transmettant l’identifiant de l’utilisateur en paramètre.
...
$card = [
'src' => $utilisateur['photo'],
'alt' => "photo de {$utilisateur['nom']} {$utilisateur['prenom']}",
'figcaption' => "{$utilisateur['nom']} {$utilisateur['prenom']} - {$utilisateur['age']} ans",
'show' => "utilisateur/show.php?id={$utilisateur['id']}"
];
require("$page_base/components/card.php");
...
'show' => "utilisateur/show.php?id={$utilisateur['id']}"Permet de créer des liens vers utilsateur/show.php en y passant l’identifiant de l’utilisateur. Grace à <base href="<?= $page_base ?? './' ?>"> l'url est relative par rapport au dossier public.
Méthode : components/card.php
On ajoute sur la page components/card.php un lien autour de chaque figure.
if (isset($card['show'])):
<a href="= $card['show'] ">
endif;
<figure class="card">
<img src='= $card['src'] ' alt='= $card['alt'] ' />
<figcaption>
= $card['figcaption']
</figcaption>
</figure>
if (isset($card['show'])):
</a>
endif;
L’ancre n’est ajoutée que si la clé $card['show'] est définie.