PHP တွင် header () function ကိုအသုံးပြုသည်။ ၎င်းကိုပုံမှန်အားဖြင့်ပြန်ညွှန်းခြင်းအတွက်အသုံးပြုသည်, စာမျက်နှာအကြောင်းအရာအမျိုးအစား, cache control နှင့်အခြားစစ်ဆင်ရေးများပြုလုပ်ရန်အသုံးပြုသည်။ သို့သော် header () function ကိုအသုံးပြုသောအခါ "ခေါင်းစီးများပို့ပြီးပြီ" ဟူသောအမှားအယွင်းတစ်ခုကိုသင်မကြာခဏကြုံတွေ့ရလေ့ရှိသည်။ ဤဆောင်းပါးသည်ဤပြ problem နာအတွက်အကြောင်းရင်းများနှင့်ဖြေရှင်းနည်းများကိုအသေးစိတ်ရှင်းပြပါမည်။
သင် header () function ကို PHP script တစ်ခုတွင်အသုံးပြုသောအခါ၎င်းသည်မည်သည့် oppparp ကိုမဆို output မတိုင်မီ header အချက်အလက်များကိုပေးပို့ရန်လိုအပ်သည် (HTML ပါဝင်မှု, နေရာများ, လိုင်းများ, PHP script သည်အကြောင်းအရာကိုပေးပို့ပါကဤအမှားသည် (i.e. ) သည် header () function ကိုမခေါ်မီထုတ်လုပ်မှုသည်ရလဒ်ဖြစ်လိမ့်မည်။ အမှားအယွင်းတစ်ခုသည်များသောအားဖြင့် "ခေါင်းစီးများကိုပို့ပြီးပြီ" ဟုများသောအားဖြင့် header message ကို browser သို့ပေးပို့ခြင်းကိုဆိုလိုသည်။
"Headers Sentsed" အမှားအယွင်းများ၏အဓိကအကြောင်းရင်းများမှာ -
HTML သို့မဟုတ်နေရာများကြိုတင်ပြင်ဆင်မှုများ
HTML ပါဝင်မှု, နေရာများသို့မဟုတ်အသစ်များသည် Header () function ကိုမခေါ်မီ PHP script တွင် PHP script တွင်ပါ 0 င်ပါကဤအမှားကိုဖြစ်ပေါ်စေလိမ့်မည်။ အထူးသဖြင့် PHP tags ( <? PHP?> ) အပြင်ဘက်တွင်နေရာများသို့မဟုတ်အသစ်များသည်အလွယ်တကူသတိမထားမိကြပါ။
ဖိုင် encoding ပြ issues နာများ :
အကယ်. PHP ဖိုင်၏ encoding format သည် UTF-8 နှင့်ဖိုင်တွင် BOM (byte အမှာစာအမှတ်အသား) ပါ 0 င်ပါက oomput order file ကိုဖိုင်၏ထိပ်တွင်မပြသော်ငြားလည်း output ကိုထည့်သွင်းစဉ်းစားလိမ့်မည်။
output buffer ပြ problem နာ :
အချို့ဖြစ်ရပ်များတွင် PHP ၏ output buffer settings သည်မသင့်လျော်ပါ။ ဥပမာအားဖြင့်, သင်သည် ob_start နှင့် output buffer ကိုမစတင်ပါက Heading Heading မတိုင်မီ Php သည် output ၏အစိတ်အပိုင်းကိုပေးပို့နိုင်သည်။
header မတိုင်မီ output ကိုမလိုအပ်ပါ။
Header မတိုင်မီကုဒ်ကိုစစ်ဆေးရန်လိုအပ်သည် () HTML output သို့မဟုတ် whitespactace ဇာတ်ကောင်များမရှိကြောင်းသေချာစေရန်လိုအပ်သည်။ နေရာတစ်ခုပင်သို့မဟုတ်အသစ်တစ်ခုကိုပင်ဤအမှားကိုပစ်ချလိုက်သည်။ အကောင်းဆုံးလုပ်ရန်အကောင်းဆုံးအရာမှာ Onless () function ကို php script ၏ထိပ်တွင် output ကိုတပ်ဆင်ထားရန် PHP script ၏ထိပ်တွင်နေရာချထားရန်ဖြစ်သည်။
အမှားဥပမာ -
<html>
<body>
<?php
header("Location: https://m66.net/somepage.php"); // ဒီပိတ်ပင်မှုအမှားတစ်ခုသတင်းပို့ပါလိမ့်မယ်
?>
</body>
</html>
မှန်ကန်သောဥပမာ -
<?php
header("Location: https://m66.net/somepage.php"); // မှန်ကန်စွာအသုံးပြုပါ
exit();
?>
<html>
<body>
</body>
</html>
ဖိုင် encoding ဖိုင်ကိုစစ်ဆေးပြီး Bom ကိုဖယ်ရှားပါ ။
သင်၏ဖိုင်သည် UTF-8 encoded နှင့် BOM ပါ 0 င်ပါကဖိုင်တည်းဖြတ်သူတစ် ဦး (ဥပမာ Sublime Tepad ++) မှတစ်ဆင့်ဖိုင်ကိုပြန်လည်တပ်ဆင်နိုင်သည်။ ထို့အပြင် file_get_contore () သို့မဟုတ် fopen ကို သုံး. ဖိုင်များကိုဖတ်သည့်အခါ,
output output buffer ကိုဖွင့်ပါ ။
PHP script ၏အစတွင် output buffer ကို enable လုပ်နိုင်ပြီး obfer obfast လုပ်ပါက ob_end_flush () သို့မဟုတ် script ကိုကိုယ်တိုင်ခေါ်ဆိုသည်အထိကြားခံတွင်ယာယီသိုလှောင်ထားနိုင်သည်။
ဥပမာ -
<?php
ob_start(); // output ကို buffering စတင်ပါ
header("Location: https://m66.net/somepage.php"); // ဒီလိုင်းသည်အမှားအယွင်းများကိုအစီရင်ခံမည်မဟုတ်
ob_end_flush(); // output buffer အကြောင်းအရာ
exit();
?>
တင်သွင်းသောဖိုင်များကိုစစ်ဆေးပါ ။
အကယ်. သင်သည်အခြား PHP ဖိုင်များကို မိတ်ဆက်ရန် သို့မဟုတ် လိုအပ်ပါက ဤဖိုင်များသည်မည်သည့်အရာမထုတ်မီ header () function ကိုမခေါ်ရန်သေချာအောင်လုပ်ရန်လိုအပ်သည်။ output contents ကို 0 င်ရောက်စွက်ဖက်ခြင်းမရှိသလောက်သေချာစေရန်သင် header () ကို အခြား PHP code များရှေ့တွင်နေရာချထားနိုင်သည်။
debugging ကိရိယာများ :
headers_sent () function ကိုအသုံးပြုခြင်းသည်ပြ problems နာများကိုရှာဖွေရန်ကူညီနိုင်သည်။ ဒီ function က header မက်ဆေ့ခ်ျကိုဘယ်လိုပို့လိုက်သလဲဆိုတာကိုဘယ်မှာလဲဆိုတာကိုပြောပြလိမ့်မယ်။ သင်အမှားအယွင်းရှိသည့်နေရာကိုရှာဖွေရန်၎င်းကိုအသုံးပြုနိုင်သည်။
ဥပမာ -