PHPда даруҳал редирект

header функциси ёрдамида бажарилган редирект ушбу функция чақирилган пайтда sodir бўлмайди. Чунки PHP ўзи редиректни бажармай, фақат браузерга мос HTTP сарлавҳасини жўнатади.

Бу шунни англатадки, редирект фақат PHP скриптни oxиригача бажарганидан сўнг sodir бўлади. Шу сабабдан турли xил паразит таъсирлар юз белиши мумкин.

Мисол учун, куйидаги кодда биз редиректни ёки базага сўровни бажаришни истаймиз. Аммо редирект учун буйруқ бўлганида ҳам базага сўров бажарилади:

php<?php
  if ($_GET['test']) {
    header('Location: test.php');
  }
  
  $query = "UPDATE users SET changed=1 WHERE id=1";
  mysqli_query($link, $query); // редиректда ҳам бажарилади!
?>

Бундай муаммолардан қочиш учун редиректдан сўнг дарҳол die функциясини чақириш керак, бу эса скриптнинг ишлашини даруҳал тўхтатади ва редирект дарҳол sodir бўлади:

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 функцияси ёрдамида тўғриланг.