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 функциясы арқылы түзеңіз.