Samopreusmeritev z dodajanjem parametrov v PHP

Naj na strani index.php se prenese GET parameter z imenom arg. Izpišimo njegovo vsebino na zaslon:

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

Naj naša stran brez GET parametra ne more delovati pravilno. V našem primeru je to res tako, saj bo, če parameter ni podan, dostop do $_GET['arg'] povzročil napako.

Lahko se pojavi vprašanje, zakaj sploh človek pride na našo stran brez parametra? Navsezadnje lahko povsod na našem spletnem mestu postavimo povezave s tem parametrom. Vendar to ni garancija: uporabnik našega spletnega mesta lahko na primer kopira od kod drugod povezavo in pri tem izgubi parameter. Ali pa ga samo po naključju izbriše, ko ureja naslovno vrstico.

Vsekakor mora naša koda predvideti takšno situacijo in nekaj storiti z njo. Kaj pa lahko storimo?

Lahko preverimo obstoj našega GET parametra in ga izpišemo le, če obstaja:

index.php<?php
  if (isset($_GET['arg'])) {
    echo $_GET['arg'];
  } else {
    // nekako reagirajmo, na primer s sporočilom
  }
?>

Lahko pa ravnamo bolj zvitO:

index.php<?php
  if (!isset($_GET['arg'])) {
    $_GET['arg'] = 'default'; // privzeta vrednost
  }
  
  echo $_GET['arg']; // zagotovo nekaj izpiše brez napake
?>

Lahko pa naredimo tako, da ob dostopu na stran brez parametra pride do preusmeritve na to isto stran s parametrom:

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

Povejte, v čem je razlika med drugo možnostjo in tretjo.

Задание 2

Naj na strani page.php lahko podamo število s pomočjo GET parametra z imenom num. Naredite tako, da ob dostopu brez tega parametra, samodejno pride do preusmeritve na to isto stran, vendar s parametrom num z vrednostjo 1.