⊗ppPmRdSWP 407 of 447 menu

Självomdirigering med tillägg av parametrar i PHP

Låt på sidan index.php skickas en GET-parameter med namnet arg. Låt oss visa dess innehåll på skärmen:

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

Låt vår sida utan GET-parameter inte kunna fungera korrekt. I vårt fall är det verkligen så, för om parametern inte skickas kommer åtkomst till $_GET['arg'] att leda till ett fel.

Man kan undra varför en person överhuvudtaget hamnar på vår sida utan parametern? Vi kan ju överallt på vår webbplats sätta länkar med denna parameter. Men det är ingen garanti: användaren av vår webbplats kan till exempel kopiera länken någonstans ifrån och förlora parametern i processen. Eller bara av misstag ta bort den när hen redigerar adressfältet.

I alla fall bör vår kod förutsäga en sådan situation och göra något åt den. Vad kan man göra?

Man kan kontrollera om vår GET-parameter finns och bara visa den om den existerar:

<?php if (isset($_GET['arg'])) { echo $_GET['arg']; } else { // reagerar på något sätt, till exempel med ett meddelande } ?>

Man kan göra på ett listigare sätt:

<?php if (!isset($_GET['arg'])) { $_GET['arg'] = 'default'; // standardvärde } echo $_GET['arg']; // kommer garanterat att visa något utan fel ?>

Eller så kan man göra så att när man kommer till sidan utan parameter sker en omdirigering till samma sida med parametern:

<?php if (!isset($_GET['arg'])) { header('Location: ?arg=default'); } echo $_GET['arg']; // parametern finns garanterat ?>

Berätta, vad är skillnaden mellan det andra alternativet och det tredje.

Låt på sidan page.php man kunna skicka ett nummer med hjälp av en GET-parameter med namnet num. Gör så att när man kommer till sidan utan denna parameter, automatiskt utförs en omdirigering till samma sida, men med parametern num med värdet 1.

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa