Реддиректи фаврӣ дар 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 ислоҳ кунед.