PHP-də parametr əlavə etməklə öz-özünə yönləndirmə

Tutaq ki, index.php səhifəsində adı arg olan GET parametri ötürülür. Gəlin onun məzmununu ekranda çap edək:

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

Tutaq ki, bizim səhifəmiz GET parametri olmadan düzgün işləyə bilməz. Bizim vəziyyətimizdə bu, həqiqətən də belədir, çünki parametr ötürülməyibsə, $_GET['arg']-ə müraciət xətaya səbəb olacaq.

Sual yarana bilər: insan ümumiyyətlə necə parametrsiz olaraq bizim səhifəmizə düşə bilər? Axı biz saytımızın hər yerində bu parametrli keçidlər qoya bilərik. Lakin bu, zəmanət deyil: məsələn, saytımızın istifadəçisi haradasa keçidi kopyalayarkən parametri itirə bilər. Ya da sadəcə ünvan sətirini redaktə edərkən təsadüfən onu silə bilər.

Ümumiyyətlə, hər halda bizim kodumuz belə bir vəziyyəti nəzərdə tutmalı və onunla nə etməlidir. Bəs nə etmək olar?

Bizim GET parametrimizin olub-olmadığını yoxlamaq və yalnız varsa onu çap etmək olar:

index.php<?php
  if (isset($_GET['arg'])) {
    echo $_GET['arg'];
  } else {
    // nəticəsini nə iləsə verək, məsələn, mesajla
  }
?>

Daha hiyləgərcəsinə edə bilərik:

index.php<?php
  if (!isset($_GET['arg'])) {
    $_GET['arg'] = 'default'; // standart dəyər
  }
  
  echo $_GET['arg']; // səhvsiz şəkildə nə isə çap edəcək
?>

Ya da edə bilərik ki, parametrsiz səhifəyə gəlişdə həmin səhifəyə parametr ilə yönləndirmə baş versin:

index.php<?php
  if (!isset($_GET['arg'])) {
    header('Location: ?arg=default');
  }
  
  echo $_GET['arg']; // parametr zəmanətlə var
?>
Задание 1

İkinci variantla üçüncü variant arasındakı fərqi izah edin.

Задание 2

Tutaq ki, page.php səhifəsində adi num adlı GET parametri ilə ədəd ötürmək olar. Elə edin ki, bu parametr olmadan gəlişdə avtomatik olaraq həmin səhifəyə, lakin num parametri 1 dəyərində olmaqla yönləndirmə yerinə yetirilsin.