PHP-де лездік бағыттау
header функциясы арқылы
жасалған бағыттау осы функцияны
шақырған сәтте орын алмайды.
Себебі PHP өзі бағыттауды орындамайды,
ол тек сәйкес HTTP тақырыпшасын
браузерге жібереді.
Бұл бағыттау PHP скриптінің соңына дейін орындалғаннан кейін ғана орындалатынын білдіреді. Бұл әртүрлі қажетсіз әсерлерді тудыруы мүмкін.
Мысал ретінде, келесі кодта біз бағыттауды немесе дерекқорға сұраныс жасауды қалаймыз. Бірақ дерекқорға сұраныс бағыттау командасы болған жағдайда да орындалады:
<?php
if ($_GET['test']) {
header('Location: test.php');
}
$query = "UPDATE users SET changed=1 WHERE id=1";
mysqli_query($link, $query); // бағыттау кезінде де орындалады!
?>
Осындай мәселелерді болдырмау үшін
бағыттаудан кейін бірден die
функциясын шақыру керек, бұл скрипттің
орындалуын лезде тоқтатады және
бағыттау бірден орындалады:
<?php
if ($_GET['test']) {
header('Location: test.php');
die();
}
$query = "UPDATE users SET changed=1 WHERE id=1";
mysqli_query($link, $query);
?>
Кодтаңызда қандай да бір қажетсіз
әсерді қайталаңыз. Содан кейін оны
die функциясы арқылы түзеңіз.