⊗ppPmRdSWP 407 of 447 menu

Selv-omdirigering med tilføjelse af parametre i PHP

Lad på siden index.php blive transmitteret en GET-parameter med navnet arg. Lad os udskrive dens indhold på skærmen:

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

Lad vores side uden GET-parameter ikke kunne fungere korrekt. I vores tilfælde er dette virkelig sådan, for hvis parameteren ikke er transmitteret, vil adgang til $_GET['arg'] føre til en fejl.

Der kan opstå et spørgsmål: hvorfor overhovedet vil en person komme ind på vores side uden parameter? Vi kan jo overalt på vores hjemmeside sætte links med denne parameter. Dette er dog ikke en garanti: brugeren af vores hjemmeside kan for eksempel kopiere et link et sted fra og miste derved parameteren. Eller bare ved et uheld slette den, når han redigerer adresselinjen.

Kort sagt, under alle omstændigheder bør vores kode forudsige en sådan situation og gøre noget ved den. Hvad kan man gøre?

Man kan kontrollere vores GET-parameter for eksistens og kun udskrive den, hvis den eksisterer:

<?php if (isset($_GET['arg'])) { echo $_GET['arg']; } else { // reagér på en eller anden måde, for eksempel med en besked } ?>

Man kan gøre det mere smart:

<?php if (!isset($_GET['arg'])) { $_GET['arg'] = 'default'; // standardværdi } echo $_GET['arg']; // garanterer at udskrive noget uden fejl ?>

Man kan også gøre sådan, at når man kommer ind på siden uden en parameter, sker der en omdirigering til den samme side med en parameter:

<?php if (!isset($_GET['arg'])) { header('Location: ?arg=default'); } echo $_GET['arg']; // parameteren er garanteret til stede ?>

Fortæl, hvad forskellen er mellem den anden mulighed og den tredje.

Lad på siden page.php man kan transmittere et tal ved hjælp af en GET-parameter med navnet num. Gør sådan, at når man kommer ind uden denne parameter, udføres der automatisk en omdirigering til den samme side, men med parameteren num med værdien 1.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis