PHP တွင် HTTP အကြောင်းပြန်စာအရပ်ဆိုင်ရာ ခေါင်းစဉ်များနှင့်ပတ်သက်သော ပြဿနာ

HTTP ၏စည်းမျဉ်းများအရ ပထမဦးစွာ HTTP ခေါင်းစဉ်များကို ပေးပို့ပြီးမှသာ HTTP အကြောင်းပြန်စာ၏ ကိုယ်ထည်ကို ပေးပို့သည်။ ဤအကြောင်းကြောင့် PHP ရှိ header လုပ်ဆောင်ချက်ဖြင့် လုပ်ကိုင်ရာတွင် ၎င်း၏ ကိုယ်ပိုင်ထူးခြားချက်များ ရှိသည်။

အမှန်မှာ၊ ဤလုပ်ဆောင်ချက်ကို ခေါ်ယူမှုမပြုမီ မည်သည့် အထွက်အထွက်မဆို စခရင်ပေါ်သို့ ရှိပါက၊ ၎င်းကို အကြောင်းပြန်စာ၏ ကိုယ်ထည်၏ အစအဖြစ် အဓိပ္ပာယ်ကောက်ယူခံရမည်။ ဤအခြေအနေတွင် header လုပ်ဆောင်ချက်ကို ခေါ်ယူခြင်းသည် PHP ၏ သတိပေးချက်တစ်ခုကို headers already sent စာသားဖြင့် ဖြစ်ပေါ်စေမည်။ ဤသို့ဖြစ်ချိန်တွင် ခေါင်းစဉ်များ ပေးပို့သွားနိုင်သည်။ အမှားပင် မပြပေမည် (PHP ၏ သတ်မှတ်ချက်များအပေါ် မူတည်သည်)။ သို့သော် များသောအားဖြင့် ဤအရာသည် လိုက်ကော့ပေါ်တွင်သာ ဖြစ်ပြီး ဝက်ဘ်ဆိုက်ကို အင်တာနက်ပေါ်သို့ တင်သည့်အခါ အားလုံး ပျက်စီးသွားမည်။

စခရင်ပေါ်သို့ အထွက်အထွက်ဆိုသည်မှာ မည်သည့်စာသားမဆို ဖြစ်နိုင်သည်။ ဥပမာအားဖြင့် ဤကဲ့သို့-

phpစာသား
<?php
  header('Content-Type: text/html');
?>

သို့မဟုတ် ဗလာအတိုင်-

php     
<?php
  header('Content-Type: text/html');
?>

သို့မဟုတ် အကွက်လပ်-

php <?php
  header('Content-Type: text/html');
?>

သို့မဟုတ် tag တစ်ခု-

html<div>
  <?php
    header('Content-Type: text/html');
  ?>
</div>

သို့မဟုတ် echo မှတစ်ဆင့် အထွက်ထုတ်ခြင်း-

php<?php
  echo 'abc';
  header('Content-Type: text/html');
?>

သို့မဟုတ် var_dump မှတစ်ဆင့် အထွက်ထုတ်ခြင်း-

php<?php
  $str = 'abc';
  var_dump($str);
  
  header('Content-Type: text/html');
?>

PHP ၏ သတိပေးချက်များပင် စခရင်ပေါ်သို့ အထွက်အထွက်များ ဖြစ်နိုင်သည်။ အောက်ပါဥပမာတွင် ရည်ရွယ်ချက်ရှိရှိ မရှိသော variable တစ်ခုကို ညွှန်းဆိုထားပြီး၊ ၎င်းသည် သတိပေးချက်အထွက် ဖြစ်စေမည်-

php<?php
  $text += 1;
  header('Content-Type: text/html');
?>

PHP ကွင်းများ ကွဲထွက်ခြင်းသည်လည်း စခရင်ပေါ်သို့ အထွက်ထုတ်ခြင်းကို ဖြစ်ပေါ်စေသည်-

php<?php
  echo 'abc';
?>
<?php
  header('Content-Type: text/html');
?>
Задание 1

header လုပ်ဆောင်ချက် မတိုင်မီ စခရင်ပေါ်သို့ အထွက်ထုတ်ခြင်းကို ရည်ရွယ်ချက်ရှိရှိ ဖန်တီးပါ။ ပေါ်ပေါက်လာသော အမှား၏ စာသားကို လေ့လာပါ။

Задание 2

ဤကုဒ်တွင် ကျူးလွန်မိသော အမှားကို ပြင်ဆင်ပါ-

html<!DOCTYPE html>
<html>
  <head>
    <?php
      header('Content-Type: text/html');
    ?>
  </head>
  <body>
    စာသား
  <body>
<html>