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 функциясы менен оңдоп көрүңүз.