PHP ပရိုဂရမ်တွင် header () function ကိုများသောအားဖြင့် Page Redirection ကိုဖွင့်သောအခါ, ဘုံအသုံးချခြင်းတွင်စာမျက်နှာပြန်ဖွင့်ခြင်း, အကြောင်းအရာအမျိုးအစားဆက်တင်များပါ 0 င်သည်။ header () function သည်အားကောင်းသော်လည်း, ဤဆောင်းပါးသည် header ၏ Settings () function ကို PHP တွင်မည်သို့စစ်ဆေးရမည်ကိုလေ့လာလိမ့်မည်။
header () function ကိုဘာမှမထုတ်ယူခင်ဟုခေါ်သည်။ အကယ်. script သည်မည်သည့်အရာကိုမဆို header ကို ခေါ်ခြင်းမပြုမီ (နေရာများ, လိုင်းချိုးဖောက်မှုများ,
အကြောင်းအရာများကိုကြိုတင်ပြင်ဆင်ထားခြင်းမပြုရန်ရှောင်ရှားရန်အောက်ပါနည်းလမ်းများဖြင့် output buffer ကိုဖွင့်ခြင်းရှိမရှိကိုသင်စစ်ဆေးနိုင်သည်။
ob_start(); // output buffer ကိုဖွင့်ပါ
// အခြားကုဒ်များ
header("Location: http://m66.net"); // retirect
ob_end_flush(); // output buffer အကြောင်းအရာနှင့်အနီးကပ်
ob_start () သည် output buffer ကို enable လုပ်လိမ့်မည်, ထို့ကြောင့် output buffer ကို enable လုပ်လိမ့်မည်။
အကယ်. အကြောင်းအရာသည် output ကိုရှိ, မရှိမရှိမသေချာပါကအကြောင်းအရာသည် output output ကိုစစ်ဆေးရန် headers_sent () function ကိုသုံးနိုင်သည်။ ဤလုပ်ဆောင်ချက်သည် output ကိုဖြစ်ပွားသော output ကိုပြသသည့် boolean value ကိုပြန်ပို့သည်။
if (headers_sent($file, $line)) {
echo "Headers already sent in $file on line $line";
} else {
header("Location: http://m66.net"); // retirect
}
headers_sent_sent () သည် စစ်မှန်သော ပြန်လာလျှင် HTTP header ကိုခေါ်ဆိုခြင်းမပြုမီ PHP သည်အကြောင်းအရာကိုဖော်ပြရန်ဖြစ်သည်ဟုဆိုလိုသည် ။ ထုတ်လုပ်မှုဖိုင်များနှင့်လိုင်းနံပါတ်များသည် developer များပြ the နာများ၏အဓိကအကြောင်းရင်းကိုရှာဖွေရန်ကူညီလိမ့်မည်။
အဆိုပါ parameters တွေကို header () function ကိုမှဖြတ်သန်းသွားကြောင်းသေချာအောင်လုပ်ပါ။ ဥပမာအားဖြင့်, Page Redirect လုပ်ပါက URL သည်မှန်ကန်စွာပုံစံချထားရမည်။ URL သည်ဆွေမျိုးလမ်းကြောင်းကိုအသုံးပြုနေပါက၎င်းသည်လက်ရှိစာမျက်နှာ၏လမ်းကြောင်းနှင့်ကိုက်ညီမှုရှိစေရန်သေချာပါစေ။ အကယ်. ပြင်ပဒိုမိန်းအမည်များပါ 0 င်ပါကအောက်တွင်ဖော်ပြထားသည့်အတိုင်းဒိုမိန်းအမည်မှန်ကန်ကြောင်းသေချာပါစေ -
header("Location: http://m66.net/somepage.php");
exit(); // အသုံးပြု exit() Script Execution ကိုရပ်တန့်ပါ,确保retirect生效
PHP configurations အချို့သည် header () function ၏အပြုအမူကိုအထူးသဖြင့်အချို့သောဆာဗာ Configurations များတွင်ပါ 0 င်သည်။ ဥပမာအားဖြင့်, output_buffering setting သည် HTTP ခေါင်းစီးများပေးပို့ခြင်းကိုအကျိုးသက်ရောက်နိုင်သည်။ header ကို ကောင်းစွာအလုပ်လုပ်ရန်တားဆီးထားသော configuration ပစ္စည်းများရှိ, ရှိမရှိအတည်ပြုရန် PHPP.ini ရှိသက်ဆိုင်ရာချိန်ညှိချက်များကိုသင်စစ်ဆေးနိုင်သည်။
output_buffering = On
အကယ်. output_buffering ကို သတ်မှတ်ထား ပါက PHP သည် script ကိုအကောင်အထည်ဖော်မချင်းတုန့်ပြန်မှုမပို့မီ PHP သည် output contents အားလုံးကို buffer ထဲသို့သိမ်းဆည်းလိမ့်မည်။
PHP အမှားမှတ်တမ်းများဖွင့်ပေးခြင်းသည် header () function execution ကိုမှန်ကန်စွာ debug လုပ်ခြင်းကိုအထောက်အကူပြုနိုင်သည်။ အမှားမှတ်တမ်းကိုစစ်ဆေးခြင်းအားဖြင့်ခေါင်းနှင့်ဆက်နွှယ်သောသတိပေးချက်များသို့မဟုတ်အမှားများရှိမရှိသင်တွေ့နိုင်သည်။
Php.ini တွင်အမှားအယွင်းများကိုဖွင့်ပါ။
log_errors = On
error_log = /path/to/error.log
အကယ်. သစ်ထုတ်လုပ်မှုကိုဖွင့်ထားလျှင် PHP သည် Excover မှအမှားအယွင်းများကိုဖွင့်ပြီး header ကို ခေါ်ဆိုသည့်အခါပြ a နာတစ်ခုရှိ,
header () function ကိုဟုခေါ်သည့်အခါ browser ၏တုန့်ပြန်မှုခေါင်းစဉ်သတင်းအချက်အလက်များကို browser ၏ developer tools များမှတဆင့်ကြည့်ရှုနိုင်သည်။ Chrome browser တွင် developer tool ကိုဖွင့်ရန် F12 ကိုနှိပ်ပါ။ "Network" tab သို့ပြောင်းပါ။ စာမျက်နှာကိုလန်းဆန်းစေပြီးနောက် HTTP တောင်းဆိုမှုနှင့်တုန့်ပြန်မှုခေါင်းစဉ်ကိုသင်တွေ့နိုင်သည်။
အကယ်. စာမျက်နှာသည်မျှော်လင့်ထားသည့်အတိုင်းမ redirect သို့မဟုတ် content type ကိုမသတ်မှတ်ပါကတုန့်ပြန်မှုခေါင်းစဉ်တွင်သင်သတ်မှတ်ထားသော header () သတင်းအချက်အလက်ရှိမရှိစစ်ဆေးနိုင်သည်။ မရရှိလျှင်၎င်းသည် PHP script သည်ခေါင်းစီးကိုမှန်ကန်စွာမပို့ဟုဆိုလိုသည်။
အချို့ဖြစ်ရပ်များတွင် Header ကိုခေါ်ခြင်း ()) အနေဖြင့် () အနေဖြင့် ထွက်ပေါက် () သို့မဟုတ်သေဆုံးရန်လိုအပ်သည် (သို့ ) die function () function ကိုသုံးရန်လိုအပ်သည်။
header("Location: http://m66.net");
exit();
အကယ်. ထွက်ပေါက် () ကို မသုံးပါက script သည်ဆက်လက်လုပ်ဆောင်နိုင်ပြီးယခင်ကသတ်မှတ်ထားသည့် http header ကို overwrite လုပ်ရန် script သည်ဆက်လက်လုပ်ဆောင်နိုင်သည်။
Header () function ကို PHP တွင်စစ်ဆေးခြင်းနှင့် debugging လုပ်သည့်အခါ header_sent () function ကို အသုံးပြု. function permeters များမှန်ကန်မှုရှိမရှိစစ်ဆေးခြင်း, ဤနည်းလမ်းများမှတစ်ဆင့် header () function setting ကိုထိရောက်မှုမရှိသေးသည့်ပြ problem နာသည်ထိရောက်စွာဖြေရှင်းနိုင်ခြင်းမဟုတ်ဘဲ PHP scripts သည်မျှော်လင့်ထားသည့်အတိုင်းအလုပ်လုပ်သည်။