Инстант редирект во PHP

Редиректот, извршен со функцијата header не се случува во моментот на повикување на таа функција. Бидејќи PHP самиот не извршува редирект, туку само испраќа соодветен HTTP заглавие до прелистувачот.

Ова значи дека редиректот ќе се случи само кога PHP ќе го изврши целиот скрипт до крај. Поради ова може да се појават разни паразитни ефекти.

На пример, во следниот код ние сакаме да извршиме или редирект, или барање до базата. Но барањето до базата ќе се изврши дури и ако имаше наредба за редирект:

php<?php
  if ($_GET['test']) {
    header('Location: test.php');
  }
  
  $query = "UPDATE users SET changed=1 WHERE id=1";
  mysqli_query($link, $query); // ќе се изврши дури и при редиректот!
?>

За да се избегнат вакви проблеми потребно е веднаш по редиректот да се повика функцијата die, која инстантно ќе го заврши извршувањето на скриптот и редиректот ќе се случи веднаш:

php<?php
  if ($_GET['test']) {
    header('Location: test.php');
    die();
  }
  
  $query = "UPDATE users SET changed=1 WHERE id=1";
  mysqli_query($link, $query);
?>
Задание 1

Репродуцирајте некој паразитен ефект во вашиот код. Потоа поправете го со помош на функцијата die.