Samopreusmeravanje sa dodavanjem parametara u PHP

Neka se na stranici index.php prosleđuje GET parametar sa imenom arg. Ispišimo njegov sadržaj na ekran:

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

Neka naša stranica bez GET parametra ne može da radi ispravno. U našem slučaju to je zaista tako, jer, ako parametar nije prosleđen, onda će pristupanje $_GET['arg'] dovesti do greške.

Može se postaviti pitanje, zašto bi uopšte neko došao na našu stranicu bez parametra? Pošto mi možemo svuda na našem sajtu da postavimo linkove sa ovim parametrom. Međutim, to nije garancija: korisnik našeg sajta može, na primer, da kopira otkud god link i da pri tome izgubi parametar. Ili ga prosto slučajno obriše, uređujući adresnu traku.

Uglavnom, u svakom slučaju naš kod treba da pretpostavi takvu situaciju i da nešto uradi po tom pitanju. Šta može da se uradi?

Možemo da proverimo naš GET parametar na postojanje i da ga ispišemo, samo ako on postoji:

index.php<?php
  if (isset($_GET['arg'])) {
    echo $_GET['arg'];
  } else {
    // nekako reagiramo, na primer, porukom
  }
?>

Možemo postupiti lukavo:

index.php<?php
  if (!isset($_GET['arg'])) {
    $_GET['arg'] = 'podrazumevano'; // podrazumevana vrednost
  }
  
  echo $_GET['arg']; // garantovano će nešto ispisati bez greške
?>

A možemo da uradimo tako da pri dolasku na stranicu bez parametra dođe do preusmeravanja na tu istu stranicu sa parametrom:

index.php<?php
  if (!isset($_GET['arg'])) {
    header('Location: ?arg=podrazumevano');
  }
  
  echo $_GET['arg']; // parametar je garantovano prisutan
?>
Задание 1

Objasnite, po čemu se drugi varijant razlikuje od trećeg.

Задание 2

Neka se na stranici page.php može proslediti broj pomoću GET parametra sa imenom num. Uredite tako da pri dolasku bez ovog parametra, automatski se izvrši preusmeravanje na tu istu stranicu, ali sa parametrom num u vrednosti 1.