Dərhal Redirect PHP-də

header funksiyası vasitəsilə edilən redirect bu funksiyanın çağırıldığı anda baş vermir. Axı PHP özü redirecti həyata keçirmir, yalnız brauzerə uyğun HTTP başlığını göndərir.

Bu o deməkdir ki, redirect yalnız o zaman baş verəcək ki, PHP bütün skripti sonuna qədər icra etsin. Buna görə müxtəlif parazit effektlər baş verə bilər.

Nümunə üçün, aşağıdakı kodda biz ya redirect etmək, ya da bazaya sorğu etmək istəyirik. Lakin bazaya sorğu hətta redirect üçün əmr olunsa belə icra olunacaq:

php<?php
  if ($_GET['test']) {
    header('Location: test.php');
  }
  
  $query = "UPDATE users SET changed=1 WHERE id=1";
  mysqli_query($link, $query); // redirect zamanı belə icra olunacaq!
?>

Bu kimi problemlərin qarşısını almaq üçün redirectdən dərhal sonra skripti dərhal dayandıran die funksiyasını çağırmaq lazımdır, beləliklə redirect dərhal baş verəcək:

php<?php
  if ($_GET['test']) {
    header('Location: test.php');
    die();
  }
  
  $query = "UPDATE users SET changed=1 WHERE id=1";
  mysqli_query($link, $query);
?>
Задание 1

Kodunuzda hansısa bir parazit effekti təkrar edin. Sonra onu die funksiyası vasitəsilə düzəldin.