php ေရးသူေတြ အမ်ားစုေေတြ႔ ရေလ႔ရွိတဲ႔ error ေလးပါ။
Warning: Cannot modify header information - headers already sent by ................
ဒီလိုျဖစ္ရင္လည္း ဘယ္လို လုပ္ရမလဲဆိုတာကို အမ်ားစုမသိၾကပါ။ ဘာေၾကာင့္ဆိုတာကိုလည္း မသိၾကပါဘူး။
ဒီ error ေလးက header function က ထုတ္ေပးတဲ႔ error ျဖစ္ပါတယ္။ ဒါေၾကာင့္ သင္ဟာ header function ကို သံုးထားျပီဆိုတာ ေသခ်ာပါတယ္။
*****************************
update:13/10/2016
*****************************
session_start(),setcookie() ေတြဟာလည္း header information ကို အသံုးျပဳတဲ႔အတြက္ အဲဒါေတြေၾကာင္႔လည္း ျဖစ္ႏိုင္ပါတယ္။
ေနာက္တစ္ခုက php.ini မွာ output_buffering ကို on ထားရင္လည္း ဒီလို error ေတြကို အလိုလို ေက်ာ္လႊားေပးႏိုင္ပါတယ္။ ဒါေပမယ့္ တစ္ခ်ိဳ႕ server ေတြမွာေတာ႔ php.ini ကို access လုပ္ခြင့္မရတဲ႔အတြက္
ျပင္လုို႔ခက္ပါလိမ္႔မယ္။အေကာင္းဆံုးက error ဘာေၾကာင့္တက္လဲဆိုတာ ရဲ႕ အရင္းအျမစ္ကို သိဖို႔လိုပါတယ္။
*****************************
update:13/10/2016 - session end
*****************************
ဒါဆို header function ကို မသံုး ရ ဘူးလို႔ မဆိုလိုပါဘူး။ အဲဒီ header function က ဘယ္လို အေျခအေန မ်ိဳး မွာ ဒီလို error ထုတ္ေပးလဲဆိုတာ နားလည္ဖို႔လိုပါတယ္။
အခုသံုးေနတဲ႔ web page ေတြဟာ http protocol ေတြအရ ဆက္သြယ္ ပို႔လႊတ္ေနၾကပါတယ္။ အဲဒီ http protocol (ပို႔လႊတ္ စည္းမ်ဥ္း) နဲ႔ ပို႔၇ာမွာ HTTP header ေတြဟာ server ေတြနဲ႔ ကိုယ္႔ ရဲ႕စက္(client) ၾကားက request (ေတာင္းဆိုမႈ ) response (တံု႕ျပန္ေပးပို႔မႈ) ေတြ ရဲ႕ အခ်က္အလက္ေတြ သို႔မဟုတ္ ပူးတြဲပါလာမည့္ data content ေတြရဲ႕ အမ်ိဳးအစား နဲ႔ အခ်က္အလက္ေတြ ပါရွိေနပါတယ္။
ဒါေၾကာင့္ အဲဒီ header section ဟာ တကယ္ေပးပို႔ရမယ့္ data ေတြရဲ႕ ေရွ႕ကေန အျမဲ ေပးပို႔ရမွာျဖစ္ပါတယ္။ သူ႔မတိုင္ခင္ data တစ္ခု ေပးပို႔မိတယ္ဆိုရင္ အထက္ပါ error ေပၚလာမွာျဖစ္ပါတယ္။
သူ႔မတိုင္ခင္ ေပးပို႔တဲ႔ data ဆိုတာ coding ေတြ စာသားေတြအပါအ၀င္ space သာမက hidden character ေတြပါ အက်ံဳး၀င္ပါတယ္။
ဒါေၾကာင့္ အဲလို error တက္ခဲ႔ရင္ ကိုယ္႔ ရဲ႕ header function မတိုင္ခင္ echo တစ္ခုခု ရွိေနသလားဆိုတာ သတိထားသင့္ပါတယ္။
အဲဒီ echo မရွိဘူးဆိုရင္ေတာင္မွ php အဖြင့္ <?php ေရွ႕ မွာ space သို႔မဟုတ္ hidden character ေတြရွိသလားဆိုတာေတြ သတိထားရပါမယ္။
အခ်ိဳ႕ application ေတြမွာ include ေတြ require ေတြသံုးျပီး file ေတြကို ေခၚထားတတ္တာေၾကာင့္ header function မတိုင္ခင္ include လုပ္ထားတဲ႔ file ေတြထဲမွာပါ စစ္ေပးရမွာ ျဖစ္ပါတယ္။
ဒီ error ကို ရွငး္ႏိုင္ေအာင္ ေနာက္ထပ္ function တစ္ခု ထပ္သံုးေပးဖုိ႔မလိုအပ္ပါဘူး။
အခ်ိဳ႕ က header function ကို သံုး ျပီး redirect လုပ္ရင္ းအဲလို error တက္လာတဲ႔အခါ meta ဘက္က တဆင့္ redirect လုပ္တတ္ၾကပါတယ္။
meta ဟာ browser ဘက္ကိုေရာက္မွ redirect လုပ္ျခင္းမ်ိဳး ျဖစ္ျပီး ပိုမို ေႏွးေကြးပါတယ္။
ထို႔အျပင္ အခ်ိဳ႕ browser ေတြမွာ အဲဒီ meta ပါတဲ႔ page ကို history ထဲထည့္မွတ္လိုက္တာေၾကာင့္ back button ကို ႏွိပ္တဲ႔အခါ ခုနက meta ပါတဲ႔ page ကို ျပန္ေရာက္ပါတယ္။ အဲဒီ page က redirect page ကို ျပန္ေခၚျပန္ပါတယ္။ ဒါဟာ အရမ္းဆိုးရြားေစပါတယ္။

EmoticonEmoticon