⊗ppPmRdSWP 407 of 447 menu

Auto-redirection avec ajout de paramètres en PHP

Supposons que sur la page index.php soit transmis un paramètre GET nommé arg. Affichons son contenu à l'écran :

<?php echo $_GET['arg']; ?>

Supposons que notre page ne puisse pas fonctionner correctement sans le paramètre GET. Dans notre cas, c'est effectivement le cas, car si le paramètre n'est pas transmis, l'accès à $_GET['arg'] entraînera une erreur.

On peut se demander pourquoi quelqu'un arriverait sur notre page sans le paramètre ? Après tout, nous pouvons mettre des liens partout sur notre site avec ce paramètre. Cependant, ce n'est pas une garantie : l'utilisateur de notre site peut, par exemple, copier un lien depuis quelque part et perdre ce faisant le paramètre. Ou simplement le supprimer accidentellement en modifiant la barre d'adresse.

En tout cas, dans tous les cas, notre code doit anticiper une telle situation et faire quelque chose. Que pouvons-nous faire ?

Nous pouvons vérifier l'existence de notre paramètre GET et l'afficher uniquement s'il existe :

<?php if (isset($_GET['arg'])) { echo $_GET['arg']; } else { // réagir d'une certaine manière, par exemple par un message } ?>

On peut faire plus astucieux :

<?php if (!isset($_GET['arg'])) { $_GET['arg'] = 'default'; // valeur par défaut } echo $_GET['arg']; // affichera forcément quelque chose sans erreur ?>

Ou on peut faire en sorte que lors de l'accès à la page sans paramètre, une redirection vers cette même page avec le paramètre se produise :

<?php if (!isset($_GET['arg'])) { header('Location: ?arg=default'); } echo $_GET['arg']; // le paramètre est garanti d'être présent ?>

Expliquez en quoi le deuxième option diffère de la troisième.

Supposons que sur la page page.php on puisse transmettre un nombre à l'aide d'un paramètre GET nommé num. Faites en sorte que lors de l'accès sans ce paramètre, une redirection automatique soit effectuée vers cette même page, mais avec le paramètre num ayant la valeur 1.

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser