Самопреусмеравање са додавањем параметара у PHP

Нека се на страници index.php прослеђује GET параметар са именом arg. Прикажимо његов садржај на екрану:

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

Нека наша страница без GET параметра не може коректно да ради. У нашем случају то је стварно тако, јер, ако параметар није прослеђен, онда ће упућивање на $_GET['arg'] довести до грешке.

Може се поставити питање, зашто би уопште неко доспео на нашу страницу без параметра? Можемо ми свуда на нашем сајту постављати линкове са овим параметром. Међутим, то није гаранција: корисник нашег сајта може, на пример, да копира одатле неки линк и при томе да изгуби параметар. Или га једноставно случајно обрише, уређујући адресну траку.

Укратко, у сваком случају наш код треба да предвиди такву ситуацију и нешто да учини по том питању. Шта се може урадити?

Може се проверити да ли наш GET параметар постоји и приказати га, само ако постоји:

index.php<?php
  if (isset($_GET['arg'])) {
    echo $_GET['arg'];
  } else {
    // некако реаговати, на пример, поруком
  }
?>

Може се поступати паметније:

index.php<?php
  if (!isset($_GET['arg'])) {
    $_GET['arg'] = 'default'; // подразумевана вредност
  }
  
  echo $_GET['arg']; // гарантовано ће нешто приказати без грешке
?>

А може се урадити тако да при доласку на страницу без параметра дође до преусмеравања на ту исту страницу са параметром:

index.php<?php
  if (!isset($_GET['arg'])) {
    header('Location: ?arg=default');
  }
  
  echo $_GET['arg']; // параметар је гарантовано присутан
?>
Задание 1

Објасните, у чему се разликује друга варијанта од треће.

Задание 2

Нека се на страници page.php може проследити број помоћу GET параметра са именом num. Направите тако да при доласку без овог параметра, аутоматски се изврши преусмеравање на ту исту страницу, али са параметром num са вредношћу 1.