Kuelekeza Upya kwa Kujiongezea Vigezo katika PHP

Acha kwenye ukurasa index.php kupeanwe kigezo cha GET chenye jina arg. Tuonyeshe yaliyomo yake kwenye skrini:

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

Acha ukurasa wetu bila kigezo cha GET usiweze kufanya kazi ipasavyo. Katika kesi yetu hii ni kweli, kwani, ikiwa kigezo hakiapeanwa, basi kurejelea $_GET['arg'] kitasababisha hitilafu.

Inaweza kutokea swali, kwa nini mtu ataingia kwenye ukurasa wetu bila kigezo? Hakika tunaweza kuweka viungo kila mahali kwenye wavuti yetu na kigezo hiki. Hata hivyo, hii sio dhamana: mtumiaji wa wavuti yetu anaweza, kwa mfano, kunakili kiungo kutoka mahali popote na kupoteza wakati huo huo kigezo. Au tu kuifuta kwa bahati mbaya, wakati akihariri mstari wa anwani.

Kwa ujumla, kwa hali yoyote code yetu inapaswa kukisia hali kama hiyo na kufanya kitu nayo. Nini chaweza kufanywa?

Inawezekana kuangalia kigezo chetu cha GET kwa uwepo na kuonyesha tu ikiwa ipo:

index.php<?php
  if (isset($_GET['arg'])) {
    echo $_GET['arg'];
  } else {
    // tunaitikia kwa namna fulani, kwa mfano, kwa ujumbe
  }
?>

Inaweza kufanyika kwa werevu zaidi:

index.php<?php
  if (!isset($_GET['arg'])) {
    $_GET['arg'] = 'default'; // thamani chaguomsingi
  }
  
  echo $_GET['arg']; // kwa dhamana itaonyesha kitu bila hitilafu
?>

Lakini inaweza kufanyika ili wakati wa kuingia kwenye ukurasa bila kigezo kutokeae uelekezaji upya kwenye ukurasa huohuo na kigezo:

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

Eleza, ni tofauti gani kati ya chaguo la pili na la tatu.

Задание 2

Acha kwenye ukurasa page.php iweze kupitishwa nambari kwa kutumia kigezo cha GET chenye jina num. Fanya ili wakati wa kuingia bila kigezo hiki, automatikasi ifanyike uelekezaji upya kwenye ukurasa huohuo, lakini na kigezo num kwa thamani 1.