PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင်စာမျက်နှာအတွက် header () function ကိုအသုံးပြုခြင်းသည်ဘုံအလေ့အကျင့်တစ်ခုဖြစ်သည်။ ဥပမာအားဖြင့်:
header("Location: http://m66.net/anotherpage.php");
exit;
အထက်ပါကုဒ်သည်အသုံးပြုသူအား http://m66.net/anet/anothage.php စာမျက်နှာသို့ redirect လုပ်လိမ့်မည်။ Redirection သည်အလွန်ရိုးရှင်းပြီး ဘုံ ခွဲစိတ်ကုသမှုတစ်ခုဖြစ်သော်လည်းတစ်ခါတစ်ရံတွင်စာမျက်နှာများကိုအလွတ်စာမျက်နှာများကိုကြုံတွေ့ရလိမ့်မည်။ ဤဆောင်းပါးသည်စာမျက်နှာအလွတ်နှင့်ပြ esh နာဖြေရှင်းခြင်းနှင့်ဖြေရှင်းနည်းများကိုအဘယ်ကြောင့်ဖြစ်ရသည့်အကြောင်းရင်းများကိုရှင်းပြပါလိမ့်မည်။
header () function ကို HTML output မတိုင်မီကိုခေါ်ရမည်။ HTML ပါဝင်မှု (ဥပမာနေရာများ, လိုင်းချိုးဖောက်မှုများ, အမှားအယွင်းများစသဖြင့်) header () function ကိုမခေါ်မီ) header () function ကိုမခေါ်မီ output သည် output ကိုဖွင့်ထားပြီး,
ဖြေရှင်းချက် -
header () function ကိုမတိုင်မီ output မရှိကြောင်းသေချာပါစေ။ ဖိုင်များ, line breaks သို့မဟုတ်ဖိုင်၏အစအ ဦး အကြား HTML အကြောင်းအရာများရှိ,
မမျှော်လင့်သော output ကိုရှောင်ရှားရန်ဖိုင်၏အစတွင်နေရာများသို့မဟုတ်အသစ်များမရှိသေးပါ။ ဖိုင်၏ BOM (byte အမှာစာအမှတ်အသား) ကိုကြည့်ခြင်းအားဖြင့်ဖိုင်ကိုမှန်ကန်စွာ encoding သည်ရှိမရှိစစ်ဆေးနိုင်သည်။
ခြေလှမ်းများကိုဖြေရှင်းခြင်း
PHP ဖိုင်ကိုဖွင့်ပြီး header () function ကိုမတိုင်မီ output မရှိကြောင်းအတည်ပြုပါ။
လိုအပ်ပါကအစောပိုင်း output ကိုရှောင်ရှားရန် output ကိုကြားခံဖွင့်ရန် ob_start () ကို သုံးပါ။
<?php
ob_start(); // output ကိုကြားခံဖွင့်ပါ
header("Location: http://m66.net/anotherpage.php");
exit;
ob_end_flush(); // output buffer နှင့် output ကိုရှင်းလင်းပါ
?>
header () function သည် script လုပ်ဆောင်မှုကိုချက်ချင်းမရပ်ပါ။ ထွက်ပေါက် ( ) function ကိုနောက်ပိုင်းတွင်ခေါ်ဆိုခြင်းမှသာ script ကိုရပ်ဆိုင်းလိုက်လိမ့်မည်။ ထို့ကြောင့်သင် ထွက်ပေါက် () ဟောင်ကောင်ခေါ်ဆိုမှု ()) ခေါ်ဆိုခြင်း () မခေါ်ပါက PHP သည်နောက်ဆက်တွဲကုဒ်ကိုဆက်လက်လုပ်ဆောင်နိုင်ပြီးစာမျက်နှာရှိအမှားအယွင်းများကိုဆက်လက်လုပ်ဆောင်နိုင်လိမ့်မည်။
ဖြေရှင်းချက် -
Exit () header () header () header () function ကိုချက်ချင်းခေါ်ပါ () function ကို script သည် Excription Execution နှင့်အခြားမည်သည့်အကြောင်းအရာမှထုတ်လုပ်မှုကိုအဆုံးသတ်ရန်သေချာစေရန်။
header("Location: http://m66.net/anotherpage.php");
exit; // script ကွပ်မျက်ရပ်စဲကြောင်းသေချာပါစေ
header အချက်အလက်များကို ခေါင်းစီးများ () function ကို ဖြတ်. ပို့ခြင်းရှိမရှိစစ်ဆေးနိုင်သည်။ အကယ်. header () function ကိုဟုခေါ်သောအခါ browser သည် header အချက်အလက်များကိုလက်ခံရရှိပါက PHP သည် header အချက်အလက်များကိုထပ်မံပေးပို့နိုင်လိမ့်မည်မဟုတ်,
ဖြေရှင်းချက် -
header () function ကိုမခေါ်မီခေါင်းစီးသတင်းအချက်အလက်များကိုပို့ခြင်းရှိမရှိစစ်ဆေးရန် headers_sent () function ကိုသုံးပါ။
header ကိုပေးပို့သော Ob_start () output ကို buffer လုပ်ရန်အသုံးပြုနိုင်သည်။
if (!headers_sent()) {
header("Location: http://m66.net/anotherpage.php");
exit;
} else {
echo "redirect မရပါ,header သတင်းအချက်အလက်ပေးပို့ခဲ့သည်";
}
PHPPS ကို PHP အမှားများကြောင့်ဖြစ်ရခြင်းဖြစ်နိုင်သည်။ ပုံမှန်အားဖြင့် PHP သည်အမှားအယွင်းများကိုမပြနိုင်သော်လည်းစာမျက်နှာအလွတ်အလွတ်များ။ အမှားအစီရင်ခံစာကိုဖွင့်ခြင်းအားဖြင့်အလားအလာရှိသောပြ problems နာများရှိ, မရှိစစ်ဆေးနိုင်သည်။
ဖြေရှင်းချက် -
ဖွံ့ဖြိုးရေးစဉ်အတွင်း PHP အမှားအယွင်းများကိုရှာဖွေတွေ့ရှိရန်နှင့်အလားအလာအမှားများကိုရှာဖွေရန်နှင့်ဖြေရှင်းရန်ကိုဖွင့်ပါ။
error_reporting(E_ALL); // အားလုံးအမှားအစီရင်ခံစာများကိုဖွင့်
ini_set('display_errors', 1); // စာမျက်နှာပေါ်တွင်အမှားအယွင်းများကိုပြပါ
header () function ကို အသုံးပြု. ပြန်ညွှန်းခြင်းသည် HTTP status code ကိုအသုံးပြုကြောင်းသေချာပါစေ။ ပုံမှန် redirect status status ကိုကုဒ်နံပါတ် 302 (ယာယီ redirect) ဖြစ်ပါတယ်။ သင်၏ redirect သည်အမြဲတမ်းတည်ရှိပါက 301 status code ကိုသုံးသင့်သည်။
header("Location: http://m66.net/anotherpage.php", true, 301); // အမြဲတမ်း redirection
exit;
အထက်ပါပြ troubl နာဖြေရှင်းခြင်းအဆင့်များဖြင့်ကျွန်ုပ်တို့သည် header () function ကိုအသုံးပြုခြင်းကိုပြန်ဖွင့်သည့်အခါစာမျက်နှာကွက်လပ်ပြ the နာကိုရှာဖွေတွေ့ရှိနိုင်သည်။ အဓိကစစ်ဆေးရေးအချက်များတွင် -
header မတိုင်မီ output ကိုမလိုအပ်ကြောင်းသေချာပါစေ။
Exit () သည် Execution Execution ရပ်စဲစေရန်သေချာစေရန်ခေါ်ဆိုပါ။
header မက်ဆေ့ခ်ျကိုပို့ပြီးစစ်ဆေးပါ။
အခြားအမှားမက်ဆေ့ခ်ျများရှိမရှိကြည့်ရန်အမှားအစီရင်ခံစာကိုဖွင့်ပါ။
ဤအစီအမံများမှတဆင့်စာမျက်နှာကွက်လပ်ပြ the နာကိုသင်ရှောင်ရှားနိုင်ပြီး redirects များကိုစနစ်တကျအလုပ်လုပ်နိုင်သည်။
သက်ဆိုင်သောတက်(ဂ်)များ:
header