PHP တွင် header () function သည် redirecting လုပ်ခြင်း, cookies များ, ပြင်ဆင်ခြင်း, ဘာဖြစ်လို့လဲဆိုတော့ output ကိုစတင်ပြီးသည်နှင့် PHP သည် HTTP Header ကိုအလိုအလျောက်ပေးပို့လိမ့်မည်။
header ကိုခေါ်ဆိုသည့်အခါအမှားအယွင်းများကိုရှောင်ရှားရန် () , ခေါင်းစီးကိုပေးပို့ခြင်းရှိမရှိရှာဖွေရန် headers_sent () function ကိုသုံးနိုင်သည်။
Http Header သတင်းအချက်အလက်များကို browser သို့ပို့ခြင်းရှိမရှိစစ်ဆေးရန် Headers_sent () PHP မှပေးသော built-in function ကိုဖြစ်သည်။ ၎င်း၏အခြေခံအသုံးပြုမှုမှာအောက်ပါအတိုင်းဖြစ်သည် -
if (!headers_sent()) {
header('Location: https://m66.net/some-page');
exit;
}
ခေါင်းစီးကိုမပို့သေးပါက ခေါင်းစီးများ () သည် မှားယွင်းသော ပြန်လာပြီး header () ကို လုံခြုံစွာခေါ်နိုင်ကြောင်း, အကယ်. မှန်ကန်သော လျှင်၎င်းသည်ခေါင်းစီးကိုပို့ပြီးပါပြီဟုခေါ်ဆိုခြင်းနှင့် ခေါင်းစဉ်ခေါ်ခြင်း () ဟုခေါ်သည့်အခါအမှားတစ်ခုထုတ်ပြန်လိမ့်မည်။
headers_sent () သည် header output ၏နေရာ (ဖိုင်နှင့်လိုင်းနံပါတ်) ကိုရရှိရန် parameters နှစ်ခုကိုလည်းလက်ခံနိုင်သည်။
if (headers_sent($file, $line)) {
echo "HTTP ဦး ခေါင်းရှိတယ် $file စာရွက်စာတမ်း၏ပထမ ဦး ဆုံး $line လိုင်းပို့ပါ。";
} else {
header('Location: https://m66.net/some-other-page');
exit;
}
ဤနည်းလမ်းသည်အထူးသဖြင့် debugging လုပ်ရန်အတွက်သင့်လျော်သည်။
redirect မလုပ်မီ, သင်သည် output မရှိကြောင်းသေချာအောင်လုပ်သင့်သည်။
if (!headers_sent()) {
header('Location: https://m66.net/login');
exit;
} else {
echo "redirect မရပါ,အဘယ်ကြောင့်ဆိုအပ်၏。";
}
အလားတူပင် Setcookie () HTTP ခေါင်းစီးများပေါ်တွင်မှီခိုနေရသည်,
if (!headers_sent()) {
setcookie('user', 'JohnDoe', time() + 3600, '/');
} else {
echo "သတ်မှတ်. မရပါ cookie,header ကိုစေလွှတ်လျက်ရှိသည်。";
}
header အမှားများကိုပို့ခြင်းအမှားများကိုသင်မကြာခဏကြုံတွေ့ရပါကဇာတ်ညွှန်း၏အစတွင် output ကြားကြားမှုကိုဖွင့်ရန်စဉ်းစားပါ -
ob_start();
ဤနည်းအားဖြင့် output သည် browser သို့ script ုပ်လပ်ချိန်သို့မဟုတ် ob_end_flush () ကို ခေါ်ခြင်းထက် browser သို့ချက်ချင်းပို့ခြင်းထက်ကြားခံရိုက်ထည့်ပါလိမ့်မည်။