Prenons le cas où vous avez une liste de clients affichée dans un tableau. Pour chacun des clients, vous souhaitez offrir trois options : afficher les détails, modifier ou supprimer le client.

Concentrons-nous sur l'affichage des détails d'un client. On comprend que peu importe le client sélectionné, la logique d'affichage sera la même. Seule la requête qui va chercher les données à afficher sera différente. Il faut donc trouver un moyen d'indiquer à la page qui affiche les détails sur quel client elle doit travailler.
Une des techniques pouvant être utilisées est l'encodage d'URL.
L'encodage d'URL consiste à passer des paramètres dans l’URL. En anglais, les paramètres ajoutés à l'URL s'appellent query strings. Il s'agit d'une technique pratique et rapide. Mais attention : elle ne doit pas être utilisée pour passer les informations sensibles puisque ces informations seront écrites en clair dans l’URL.
Et comme les informations sont écrites directement dans l'URL, il faut prévoir qu'un internaute pourrait tenter une attaque en entrant des caractères malicieux...
Les techniques de protection sont les mêmes que lorsque l'information provient d'un formulaire Web : requêtes préparées pour prévenir les injections SQL si l'information doit être utilisée dans une requête SQL, htmlspecialchars() pour prévenir les attaques XSS si l'information doit être affichée à l'écran, etc.
Pour passer un paramètre dans l'URL, il suffit de faire suivre le nom de la page Web par un point d'interrogation. Suivront ensuite une ou plusieurs paires variable=valeur, séparées par un esperluette (&).
Ex : https://mondomaine.com/details-client.php?id=28
Ex : https://apical.xyz/ContenuFormation.php?formation_id=30&chapitre_id=1722&fiche_id=1222
Dans la plupart des cas, les URL avec paramètres seront encodés dans un lien.
echo "<a href='https://mondomaine.com/details-client.php?id=28'><img src='medias/commun/BoutonChoisir.png' alt='Détails' title='Détails' /></a>;
Mieux : on utilisera des variables pour préciser les paramètres :
echo "<a href='https://mondomaine.com/details-client.php?id=$id'><img src='medias/commun/BoutonChoisir.png' alt='Détails' title='Détails' /></a>;
Et si l'information à passer en paramètre est tirée de la base de données :
echo "<a href='https://mondomaine.com/details-client.php?id=$enreg[0]'><img src='medias/commun/BoutonChoisir.png' alt='Détails' title='Détails' /></a>;
Dans la page qui reçoit un paramètre dans son URL (ex : dans la page details-client.php), on pourra retrouver la valeur d'un paramètre en utilisant $_GET.
Il faut toujours utililser isset() pour vérifier si le paramètre existe avant de tenter de lire sa valeur au cas où un internautre entrerait directement l'URL sans paramètre.
Dans cet exemple, si un internaute tentait d'accéder à la page en entrant directement son URL sans préciser de paramètres (ex : en tapant http://mondomaine.com/details-client.php dans la barre d'URL de son navigateur), le code du else serait exécuté puisqu'aucun id n'aurait été précisé.
Dans ce else, le programme pourrait, par exemple, rediriger l'internaute vers une page sur laquelle on peut choisir le client désiré.
C'est le tableau $_GET qui nous permet de retrouver des paramètres dans l'URL.
Il s'agit d'un tableau associatif. Sa clé correspond au nom de la variable dans l'URL.
Pour faciliter le code, il convient de placer cette valeur dans une variable.
▼Publicité