⊗ppPmRdSWP 407 of 447 menu

Zelfredirectie met toevoeging van parameters in PHP

Stel dat op de pagina index.php een GET parameter met de naam arg wordt doorgegeven. Laten we de inhoud ervan op het scherm weergeven:

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

Stel dat onze pagina zonder GET parameter niet correct kan werken. In ons geval is dit inderdaad zo, omdat, als de parameter niet is doorgegeven, toegang tot $_GET['arg'] tot een fout leidt.

Er kan een vraag rijzen, waarom zou een persoon überhaupt op onze pagina terechtkomen zonder parameter? Immers, we kunnen overal op onze website links plaatsen met deze parameter. Dit is echter geen garantie: een gebruiker van onze site kan bijvoorbeeld een link van ergens kopiëren en daarbij de parameter verliezen. Of deze per ongeluk verwijderen tijdens het bewerken van de adresbalk.

Kortom, in elk geval moet onze code een dergelijke situatie veronderstellen en er iets mee doen. Wat kunnen we dan doen?

We kunnen onze GET parameter controleren op bestaan en deze alleen weergeven als hij bestaat:

<?php if (isset($_GET['arg'])) { echo $_GET['arg']; } else { // reageer op een bepaalde manier, bijvoorbeeld met een bericht } ?>

We kunnen het slimmer aanpakken:

<?php if (!isset($_GET['arg'])) { $_GET['arg'] = 'default'; // standaardwaarde } echo $_GET['arg']; // geeft gegarandeerd iets weer zonder fout ?>

Of we kunnen het zo maken dat bij toegang tot de pagina zonder parameter een redirect naar dezelfde pagina mét parameter plaatsvindt:

<?php if (!isset($_GET['arg'])) { header('Location: ?arg=default'); } echo $_GET['arg']; // parameter is gegarandeerd aanwezig ?>

Leg uit wat het verschil is tussen de tweede variant en de derde.

Stel dat op de pagina page.php een getal kan worden doorgegeven met behulp van een GET parameter met de naam num. Zorg ervoor dat bij toegang zonder deze parameter, automatisch een redirect naar dezezelfde pagina wordt uitgevoerd, maar met de parameter num met de waarde 1.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren