PHP တွင် ချက်ချင်း ပြန်ညွှန်းခြင်း

header လုပ်ဆောင်ချက်ဖြင့် ဆောင်ရွက်ထားသော ပြန်ညွှန်းခြင်းသည် ထို function ကိုခေါ်သည့် အချိန်တွင် ဖြစ်မပျက်ပါ။ အဘယ့်ကြောင့်ဆိုသော် PHP သည် ကိုယ်တိုင် ပြန်ညွှန်းခြင်းကို မဆောင်ရွက်ဘဲ၊ browser သို့ သက်ဆိုင်ရာ 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 function ကို ခေါ်ယူရမည်။ ထိုသို့ဆိုလျှင် စကရစ်ကုတ်၏ လုပ်ဆောင်ချက်ကို ချက်ချင်းရပ်တန့်ပြီး ပြန်ညွှန်းခြင်းလည်း ချက်ချင်းဖြစ်ပေါ်လာမည်။

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 function ကို အသုံးပြု၍ ပြုပြင်ပါ။