Önátirányítás paraméterek hozzáadásával PHP-ben

Tegyük fel, hogy a index.php oldalon átadunk egy GET paramétert, melynek neve arg. Jelenítsük meg a tartalmát a képernyőn:

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

Tegyük fel, hogy oldalunk nem működhet helyesen a GET paraméter nélkül. Esetünkben ez valóban így van, mivel, ha a paraméter nincs megadva, akkor a $_GET['arg'] elérése hibához vezet.

Felmerülhet a kérdés, hogy egyáltalán hogyan kerülhet valaki a oldalunkra paraméter nélkül? Hiszen webhelyünkön mindenhol elhelyezhetünk linkeket ezzel a paraméterrel. Ez azonban nem garancia: webhelyünk felhasználója például másolhatja a linket valahonnan, és eközben elveszítheti a paramétert. Vagy egyszerűen véletlenül törölheti azt, miközben szerkeszti a címsort.

Mindenesetre kódunknak fel kell készülnie egy ilyen helyzetre, és tennie kell valamit. Mit tehetünk hát?

Ellenőrizhetjük, hogy a GET paraméterünk létezik-e, és csak akkor jeleníthetjük meg, ha létezik:

index.php<?php
  if (isset($_GET['arg'])) {
    echo $_GET['arg'];
  } else {
    // valahogy reagálunk, például üzenettel
  }
?>

Legyélhetünk rafináltabbak is:

index.php<?php
  if (!isset($_GET['arg'])) {
    $_GET['arg'] = 'default'; // alapértelmezett érték
  }
  
  echo $_GET['arg']; // garantáltan kiír valamit hiba nélkül
?>

Vagy megtehetjük, hogy amikor paraméter nélkül érkeznek az oldalra, akkor történjen átirányítás ugyanerre az oldalra a paraméterrel:

index.php<?php
  if (!isset($_GET['arg'])) {
    header('Location: ?arg=default');
  }
  
  echo $_GET['arg']; // a paraméter garantáltan létezik
?>
Задание 1

Mesélj el, mi a különbség a második és a harmadik megoldás között.

Задание 2

Tegyük fel, hogy a page.php oldalon átadhatunk egy számot a num nevű GET paraméterrel. Állítsd be úgy, hogy amikor a paraméter nélkül érkeznek az oldalra, automatikusan végrehajtódjon egy átirányítás ugyanerre az oldalra, de a num paraméter 1 értékkel.