လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Header () သည် "ခေါင်းစီးများကိုပို့ပြီးသား" အမှားတစ်ခုကိုအဘယ်ကြောင့်အစီရင်ခံသနည်း။ အကြောင်းရင်းများနှင့်ဖြေရှင်းနည်းများ

Header () သည် "ခေါင်းစီးများကိုပို့ပြီးသား" အမှားတစ်ခုကိုအဘယ်ကြောင့်အစီရင်ခံသနည်း။ အကြောင်းရင်းများနှင့်ဖြေရှင်းနည်းများ

M66 2025-06-05

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" အမှားအယွင်းများ၏အဓိကအကြောင်းရင်းများမှာ -

  1. HTML သို့မဟုတ်နေရာများကြိုတင်ပြင်ဆင်မှုများ
    HTML ပါဝင်မှု, နေရာများသို့မဟုတ်အသစ်များသည် Header () function ကိုမခေါ်မီ PHP script တွင် PHP script တွင်ပါ 0 င်ပါကဤအမှားကိုဖြစ်ပေါ်စေလိမ့်မည်။ အထူးသဖြင့် PHP tags ( <? PHP?> ) အပြင်ဘက်တွင်နေရာများသို့မဟုတ်အသစ်များသည်အလွယ်တကူသတိမထားမိကြပါ။

  2. ဖိုင် encoding ပြ issues နာများ :
    အကယ်. PHP ဖိုင်၏ encoding format သည် UTF-8 နှင့်ဖိုင်တွင် BOM (byte အမှာစာအမှတ်အသား) ပါ 0 င်ပါက oomput order file ကိုဖိုင်၏ထိပ်တွင်မပြသော်ငြားလည်း output ကိုထည့်သွင်းစဉ်းစားလိမ့်မည်။

  3. output buffer ပြ problem နာ :
    အချို့ဖြစ်ရပ်များတွင် PHP ၏ output buffer settings သည်မသင့်လျော်ပါ။ ဥပမာအားဖြင့်, သင်သည် ob_start နှင့် output buffer ကိုမစတင်ပါက Heading Heading မတိုင်မီ Php သည် output ၏အစိတ်အပိုင်းကိုပေးပို့နိုင်သည်။

"ခေါင်းစီးများကို" အမှားကိုမည်သို့ဖြေရှင်းရမည်နည်း။

  1. 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>
    
  2. ဖိုင် encoding ဖိုင်ကိုစစ်ဆေးပြီး Bom ကိုဖယ်ရှားပါ
    သင်၏ဖိုင်သည် UTF-8 encoded နှင့် BOM ပါ 0 င်ပါကဖိုင်တည်းဖြတ်သူတစ် ဦး (ဥပမာ Sublime Tepad ++) မှတစ်ဆင့်ဖိုင်ကိုပြန်လည်တပ်ဆင်နိုင်သည်။ ထို့အပြင် file_get_contore () သို့မဟုတ် fopen ကို သုံး. ဖိုင်များကိုဖတ်သည့်အခါ,

  3. 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();
    ?>
    
  4. တင်သွင်းသောဖိုင်များကိုစစ်ဆေးပါ
    အကယ်. သင်သည်အခြား PHP ဖိုင်များကို မိတ်ဆက်ရန် သို့မဟုတ် လိုအပ်ပါက ဤဖိုင်များသည်မည်သည့်အရာမထုတ်မီ header () function ကိုမခေါ်ရန်သေချာအောင်လုပ်ရန်လိုအပ်သည်။ output contents ကို 0 င်ရောက်စွက်ဖက်ခြင်းမရှိသလောက်သေချာစေရန်သင် header () ကို အခြား PHP code များရှေ့တွင်နေရာချထားနိုင်သည်။

  5. debugging ကိရိယာများ :
    headers_sent () function ကိုအသုံးပြုခြင်းသည်ပြ problems နာများကိုရှာဖွေရန်ကူညီနိုင်သည်။ ဒီ function က header မက်ဆေ့ခ်ျကိုဘယ်လိုပို့လိုက်သလဲဆိုတာကိုဘယ်မှာလဲဆိုတာကိုပြောပြလိမ့်မယ်။ သင်အမှားအယွင်းရှိသည့်နေရာကိုရှာဖွေရန်၎င်းကိုအသုံးပြုနိုင်သည်။

    ဥပမာ -