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:

index.php<?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:

index.php<?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:

index.php<?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:

index.php<?php
  if (!isset($_GET['arg'])) {
    header('Location: ?arg=default');
  }
  
  echo $_GET['arg']; // parametern finns garanterat
?>
Задание 1

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

Задание 2

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.