Automatické presmerovanie s pridaním parametrov v PHP

Nech na stránke index.php sa odovzdáva GET parameter s názvom arg. Vypíšme jeho obsah na obrazovku:

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

Nech naša stránka bez GET parametra nemôže korektne fungovať. V našom prípade je to naozaj tak, pretože ak parameter nie je odovzdaný, tak prístup k $_GET['arg'] povedie k chybe.

Môže vzniknúť otázka, prečo vôbec človek príde na našu stránku bez parametra? Veď môžeme všade na našom webe umiestniť odkazy s týmto parametrom. Avšak, to nie je záruka: používateľ nášho webu môže napríklad kopírovať odniekiaľ odkaz a pritom stratiť parameter. Alebo ho jednoducho náhodne odstrániť pri úprave adresného riadku.

Vo všeobecnosti, v každom prípade náš kód by mal predpokladať takúto situáciu a niečo s ňou urobiť. Čo sa dá urobiť?

Môžeme skontrolovať existenciu nášho GET parametra a vypísať ho, len ak existuje:

index.php<?php
  if (isset($_GET['arg'])) {
    echo $_GET['arg'];
  } else {
    // nejako zareagujeme, napríklad správou
  }
?>

Môžeme postupovať prefíkanešie:

index.php<?php
  if (!isset($_GET['arg'])) {
    $_GET['arg'] = 'default'; // predvolená hodnota
  }
  
  echo $_GET['arg']; // garantovane niečo vypíše bez chyby
?>

Alebo môžeme urobiť tak, aby pri príchode na stránku bez parametra došlo k presmerovaniu na tú istú stránku s parametrom:

index.php<?php
  if (!isset($_GET['arg'])) {
    header('Location: ?arg=default');
  }
  
  echo $_GET['arg']; // parameter je garantovane prítomný
?>
Задание 1

Vysvetlite, v čom je rozdiel medzi druhou možnosťou a treťou.

Задание 2

Nech na stránke page.php je možné odovzdať číslo pomocou GET parametra s názvom num. Zabezpečte, aby pri príchode bez tohto parametra sa automaticky vykonalo presmerovanie na tú istú stránku, ale s parametrom num s hodnotou 1.