ကွန်ပျူတာများ, ဆော့ဖျဝဲ
Function ကိုအတွက်ကမ္ဘာလုံးဆိုင်ရာ variable ကို PHP ။ PHP ကိုတစ်ကမ္ဘာလုံးဆိုင်ရာ variable ကို Make
သငျသညျအများကြီးသိထားဖို့လိုကျယ်ပြန့်လုပ်ဆောင်နိုင်စွမ်းရှိပါတယ်ရသောအပြည့်အဝ site ကိုဖန်တီးရန်။ က PHP ကိုဖြစ်ပါသည် - သို့သော်လည်းအဘယ်သို့သူ့ကိုအမှန်တကယ်ထူးခြားသောစေနိုင်သည်။ အဆိုပါပရိုဂရမ်ဘာသာစကားမှာကမ္ဘာလုံးဆိုင်ရာ variable ကိုတစ်ခါတစ်ရံလိုအပ်ဖြစ်ပါသည်, ကဘယ်လိုအလုပ်လုပ်တယ်ဆိုတာကိုသိရန်တစ်ခါတစ်ရံတွင်အလွန်ကိုမကြာခဏအသုံးပြုကြသည်, ဒါပေမယ့်မပေးပါ။ ဒါကကျနော်တို့ကဒီဆောင်းပါးထဲမှာလုပ်ဖို့သွားကြသည်, ထိုသို့နှင့်ကဘယ်လိုအလုပ်လုပ်တယ်ဆိုတာကိုအရာကိုလေ့လာခွငျးဖွစျသညျ။
နယ်ပယ်
ပုံမှန်အားဖြင့်သူတို့ကဒေသခံ function ကိုအတိုင်းအတာကန့်သတ်ထားပါသည်။ နှင့်ပိုပြီးအသုံးပြုနိုင်သည့်၎င်း၏နယ်နိမိတ်အတွင်းရှိ variable ကိုမြင်ကြဖိုင်များ, အောင်ဖို့ဘယ်လို? ဒီအဆုံး၎င်း, PHP ကိုကမ္ဘာလုံးဆိုင်ရာ variable တွေကိုအတွက်ထောက်ပံ့ပေးလျက်ရှိသည်။
keyword ကို "ကမ္ဘာလုံးဆိုင်ရာ"
ထိုကဲ့သို့သောအရိပ်အယောင်များအကောင်အထည်ဖော်မှုပြီးနောက်, ဒေတာကိုမဆိုဖိုင်နှင့်အတူအလုပ်လုပ်နိုင်ပါလိမ့်မည်။ တစ်နေရာရာကဒီ variable ကိုမှကိုးကားရှိပါတယ်လျှင်, အစီအစဉ်ကိုအမြဲကမ္ဘာလုံးဆိုင်ရာဗားရှင်းအပေါ်အာရုံစိုက်ပါလိမ့်မယ်။
အဘယ်ကြောင့်ထိုကဲ့သို့သောထူးဆန်းတဲ့ဘာသာစကား? တစ်ချိန်တည်းမှာဒေသခံဗားရှင်းရှိပါတယ်ဖြစ်နိုင်သည်ဟူသောအချက်ကို။ ဒါပေမဲ့သူတို့ကသီးသန့်ကြေညာခဲ့သည်ရှိရာသူတို့အားဖိုင်များကိုမရရှိနိုင်ပါလိမ့်မည်။ လူအပေါင်းတို့သည်လည်းကျန်ကြွင်းသောအဘို့ကမ္ဘာလုံးဆိုင်ရာ variable တွေကို PHP ကိုလူတန်းစားပြုမူပါလိမ့်မယ်။ ထိုကြောင့်သင်သည်သတိထားဖြစ်ရမည်။ ကမ္ဘာလုံးဆိုင်ရာတစ်ဦး: နှင့်မျှမတို့သံသယရှိကွောငျးကို, ဒီမှာသူတို့တူအရာ၏ဥပမာတစ်ခုဖြစ်ပါတယ်။
တဦးတည်းဖိုင် variable တွေကိုတစ်အရေအတွက် access ကိုရပါလိမ့်မယ်လျှင်, ပဋိပက္ခရန်သူတို့ကိုဖြစ်ပေါ်စေပါလိမ့်မယ်လို့ပဲ။ ဒါပေမယ့်ကျနော်တို့သေချာဘို့မပြောနိုင်ပါဘူး - ဒေသခံသို့မဟုတ်ကမ္ဘာလုံးဆိုင်ရာ variable ကိုဖတ်ခြင်းသို့မဟုတ်လုံးဝပျက်ကွက်နေသည်။ က function ကိုအတွက်မှတ်ပုံတင်ရန်လျှင်ဒါ, မပြဿနာဖြစ်သင့်သည်။ သို့သော်၎င်း၏နယ်စပ်တစ် variable ကိုအသုံးပြုခြင်းပြဿနာဖြစ်ပါတယ်။ ထို့ကြောင့်, အနီးကပ်စောင့်ကြည့်ခြင်းနှင့်ဘယ်နေရာမှာရှိဟုပဋိပက္ခမှပင်လိုအပ်ချက်တစ်ခုဖြစ်သည်ကြောင်းသေချာစေရန်လိုအပ်သော code တွေရဲ့မူကြမ်းရေးဆွဲများ၏ဖွဲ့စည်းပုံသည်ထ။
မှတ်တမ်းတင်၏နောက်ထပ်ဂျ
predefined / superglobals
တိုင်း programming language ကို၎င်း၏လုပ်ငန်းဆောင်တာအခြို့အဘို့အစင်းလုံးငှားဖြစ်ကြောင်းတချို့အမည်များရှိပါတယ်။ ဒါကြောင့်နာမည်တူ၏ PHP ကိုကမ္ဘာလုံးဆိုင်ရာ variable တွေကိုအတွက်ဖန်တီးပေးရန်အလုပ်လုပ်မည်မဟုတ်ပေ။
ဤပရိုဂရမ်ဘာသာစကား၎င်း၏ကိုယ်ပိုင်ဝိသေသလက္ခဏာများရှိပါတယ်။ ဒါကြောင့်ဒီမှာကြိုတင်သတ်မှတ်ထား variable တွေကို "စူပါ" ကို install ကြသည်မဟုတ်အရေးကြီးသည်, သည်, ထိုလူအပေါင်းတို့သည်နေရာမရရှိနိုင်မရှိကြပေ။ ငါကဘယ်လိုလုပ်ဖြေရှင်းပေးနိုင်သလဲ ကြိုတင်သတ်မှတ်ထား variable တွေကိုတချို့သည်ဒေသခံဧရိယာမှာရရှိနိုင်ခဲ့အောက်ပါအတိုင်းပြုလုပ်ကြေညာရမည်ဖြစ်သည် :. ကို Global « Variable " ဒါဟာညာဘက်ရှေ့တော်၌, ပြောပြသည်ကဲ့သို့တူညီသောဖြစ်ဟန်? ဒါဟာအတော်လေးဟုတ်မှန်, ဒါပေမယ့်မဟုတ်ပါဘူး။ ကျွန်တော်တို့ကိုပြီးသားဥပမာတစ်ခု "တိုက်ပွဲ" ကိုကြည့်ပါစို့:
- ကမ္ဘာလုံးဆိုင်ရာ $ HTTP_POST_VARS;
- [ 'အမည်ဖြင့်'] $ HTTP_POST_VARS echo ။
သင်သည်ထိုသူတို့အကြားခြားနားချက်ခံစားရ? PHP ကိုကမ္ဘာလုံးဆိုင်ရာ variable တွေကိုအတွက်သေချာပေါက် function ကိုအတွင်းအသုံးပြုသောခံရဖို့ရှိသည်ပါဘူးသတိပြုပါ။ သူကတောင်အထဲတွင်ထည့်သွင်းကြောင်းဖိုင်တစ်ဖိုင်ထဲမှာထည့်ထားနိုင်ပါတယ်။
links များနှင့်ဘေးကင်းလုံခြုံရေး
သင်တို့ကိုတွေ့မြင်နိုင်သကဲ့သို့, PHP ကိုတစ်ကမ္ဘာလုံးဆိုင်ရာ variable ကိုပြဿနာတစ်ခုမဟုတ်ပါဘူးဖန်တီးပါ။ သို့သော်မည်သည့်အထူးသဖြင့်ဆွေမျိုးလင့်များရှိသလော ကမ္ဘာလုံးဆိုင်ရာတွေကိုအသုံးပြုတဲ့အခါဟုတ်တယ်, မမျှော်လင့်ဘဲအမူအကျင့်ရှိပါလိမ့်မယ်။ သို့သော်မီ, အနည်းငယ် backstory ။
ဗားရှင်း 4.2.0 အတွက် default အ register_globals အားဖြင့်ညွှန်ကြားချက်ကိုပိတ်ထားဖို့ On-အခြေအနေမှပြောင်းလဲပစ်ခဲ့ပါတယ်။ အများဆုံးအသုံးပြုသူများအတွက်, ဒီအလွန်အရေးကြီးပါသည်, ဒါပေမယ့်အချည်းနှီးမဟုတ်ပါဘူး။ ပြီးနောက်ရှိသမျှတို့, ကတိုက်ရိုက်ဖွံ့ဖြိုးပြီးထုတ်ကုန်၏လုံခြုံရေးသက်ရောက်သည်။ သင်ဤ parameter သည်ပေါ် variable ကိုကမ္ဘာလုံးဆိုင်ရာ, PHP ကို-ညွှန်ကြားချက်အောင်ဖို့လိုအပ်ပါလျှင်တိုက်ရိုက်ထိခိုက်နစ်နာမဟုတ်ပါဘူး။ သို့သော်မမှန်ကန်သောအသုံးပြုမှုပြီးသားရှေးထုံးများလုံခြုံရေးဖန်တီးနိုင်ပါတယ်။
ဒီတော့ရေးသားထားသော code တွေရဲ့ကွပ်မျက်က HTML-ပုံစံများကိုပေးပို့ဖို့ဥပမာလိုအပ်နေပါသည်သောကွဲပြားခြားနားသော variable တွေကိုနမတိုင်မီ register_globals ပေါ်တွင်လှည့်လျှင်။ ထို့ကြောင့်, အဲဒါကိုကို turn off ဖို့ဆုံးဖြတ်ခဲ့ပါတယ်။
အဘယ်ကြောင့်? php ကမ္ဘာလုံးဆိုင်ရာ variable ကို၌ဤညွှန်ကြားချက်ပြည်နယ်အများကြီးပေးဆပ်ရန်သလဲ? အမှန်မှာကမှ လာ. ရှိရာ developer များ၏ပြည်နယ်အမြဲဧကန်အမှန်နှင့်အတူသူတို့ကိုယ်သူတို့၏မေးခွန်းကိုဖြေနိုင်ကြဘူးသည့်အခါဖြစ်ပါသည်။ တဖကျတှငျက code ကိုရေးဖို့ပိုမိုလွယ်ကူသည်။ သို့သော်အခြားအပေါ် - ကလုံခြုံရေးအန္တရာယ်ဖြစ်ပါတယ်။ ထို့ကြောင့်, အမှားများကိုရှောင်ရှားအဖြစ် data တွေကိုရောစပ်ခြင်းနှင့်ညွှန်ကြားချက်မှပိတ်ထားလိုက်ပါသည်။
အခု / မလုံခြုံကုဒ်ကိုကြည့်ကြကုန်အံ့အဖြစ်ကမ္ဘာလုံးဆိုင်ရာ PHP ကို variable ကို၏ကြေညာချက်ဒေတာကိုလက်ကမြင်းမှာကြိုးစားမှုဖြင့်လိုက်ပါသွားသည်အဘယ်မှာရှိအမှုပေါင်း detect လုပ်ဖို့ဘယ်လောက်။ ဒါဟာအဆင်းလှပေမယ့်လည်းတဖြည်းဖြည်းပထမဦးဆုံးရရှိနိုင်လူတစ်ဦးကိုဖေါ်ထုတ်ဖို့မက်ဘ်ဆိုက်များအလုပ်လုပ်မသာဖန်တီးနိုင်ရန်အတွက်လိုအပ်သောဖြစ်ပါတယ်။
အန္တရာယ်ရှိတဲ့ကုဒ်
ရဲ့ variable ကိုလုပ်ပိုင်ခွင့်ပြီသောသူတို့အဘို့မှန်ကြောင်းသတ်မှတ်ထားပါစို့:
လျှင် (authenticate_user ()) {
$ = ဟုတ်မှန်သောခွင့်ပြု;
}
{($ ခွင့်ပြုရန်) လျှင်
"/highly/sensitive/data.php" တို့ပါဝင်သည်;
}
ဒီပြည်နယ်ထဲမှာ, variable ကိုအလိုအလျှောက်သတ်မှတ်နိုင်ပါသည်။ ဒေတာရိုးရိုးအစားထိုးနိုင်ထည့်သွင်းစဉ်းစားလျက်, သူတို့မူရင်း source ကိုသတ်မှတ်မထား, ပြီးရင်မည်သူမဆိုထိုကဲ့သို့သောစမ်းသပ်မှု pass နှင့်တစ်စုံတစ်ဦးဖြစ်ဟန်ဆောင်နိုင်ပါတယ်။ ဆန္ဒရှိလျှင်, တိုက်ခိုက်သူ (သို့မဟုတ်ပဲစပ်စုပေမယ့်အတွေ့အကြုံလူတစ်ဦး), ကျွန်တော်တို့ရဲ့ယုတ္တိဗေဒချို့ယွင်းနိုင်ပါသည်။
ကျနော်တို့ကညွှန်ကြားချက်များ၏တန်ဖိုးကိုပြောင်းလိုက်လျှင်ဤကုဒ်ကျနော်တို့လိုအပ်သည့်အဖြစ်, မှန်ကန်စွာအလုပ်လုပ်ပါလိမ့်မယ်။ ဒါပေမယ့် variable ကို၏ပိုင်းတွင်ပရိုဂရမ်းမင်းအတွက်အကောင်းတစ်ဦးသေံသာဖြစ်ပါသည်, ဒါပေမယ့်လည်းကျွန်တော်တို့ကိုဇာတ်ညွှန်း၏တည်ငြိမ်မှုကိုတစ်ဦးအခြို့သောအာမခံချက်ပေးသည်။
code ကို၏ယုံကြည်စိတ်ချရသောဗားရှင်း
သငျသညျကို turn off သို့မဟုတ်အလုပ်ညွှန်ကြားချက်, သို့မဟုတ်ဤရည်မှန်းချက်အောင်မြင်ရန်ပိုမိုရှုပ်ထွေးတဲ့ code တွေနဲ့သတ်မှတ်နိုင်ပါတယ်။ ဥပမာအားဖြင့်, ဤကဲ့သို့သော:
{(isset ($ _ SESSION [ 'အသုံးပြုသူအမည်'])) လျှင်
ပဲ့တင်သံ "မင်္ဂလာပါ {$ _ SESSION [ 'အသုံးပြုသူအမည်']} b>";
} Else {
echo "မင်္ဂလာပါ ဧည့် b>
";
"ကြိုဆိုပါတယ်အသုံးပြုသူ!" ပဲ့တင်သံ;
}
ဤကိစ္စတွင်အတွက်အစားထိုး Make, ခက်ခဲရှိပါလိမ့်မယ်။ သို့သော်နေဆဲ - ဖြစ်နိုင်သော။ ဒီလိုလုပ်ဖို့, သင်လျင်မြန်စွာတုန့်ပြန်ရေးကိရိယာများထောက်ပံ့ပေးကြသည်ကိုဂရုစိုက်ရမည်ဖြစ်သည်။ သငျသညျ PHP ကိုအတွက်ကမ္ဘာလုံးဆိုင်ရာ variable တွေကိုထည့်သွင်းရန်လိုလျှင်အောက်ပါ tools တွေကိုသုံးနိုငျသညျအကွာအဝေးရရှိသောတန်ဖိုးကဘာလဲဆိုတာသိကြပါလျှင်, တကပွဲနှင့်အတူဤစစျဆေးဖို့ဇာတ်ညွှန်းမှတ်ပုံတင်ရန်ဖြစ်နိုင်ပါတယ်။ ဟုတ်ပါတယ်, ကိုလည်းအစားထိုးတန်ဖိုးများကိုဆန့်ကျင်အပြည့်အဝကာကွယ်စောင့်ရှောက်ရေးကိုအာမခံမပေးပါဘူး။ သို့သော်အလွန်အကျွံ options များသိသိသာသာရှုပ်ထွေးပါတယ်။
ကြိုးစားမှုဟန်ဆောင်ရန်တွေ့
ရဲ့အစောပိုင်းကသင်တိကျမ်းစာ၌လာသည်ကိုနားလည်ပုံကိုကြည့်ရှုကြကုန်အံ့။ အောက်တွင်ဖော်ပြထားသောပေးထားပါလိမ့်မည်သော function ကိုအတွက် PHP ကိုကမ္ဘာလုံးဆိုင်ရာ variable တွေကိုမှာတော့သင်ကိုယ်တိုင်ကြေညာဖို့လိုအပ်ပါလိမ့်မယ်။ ငါတို့သည်ဤသင်ခန်းစာခေါင်းစဉ်၏ဝါးမြိုခြင်းအပေါ်အိမ်စာတစျမြိုးကြောင်းပြောနိုင်ပါသည်။ ဒီမှာကုဒ်ဖြစ်ပါသည်:
Php
လျှင် (isset ($ _ cookies [ 'C_COOKIE'])) {
} Elseif (isset ($ _ GET [ 'C_COOKIE']) || isset ($ _ POST [ 'C_COOKIE'])) {
မေးလ် ( "administrarot@example.com", $ _SERVER [ 'REMOTE_ADDR' '] "အာရုံစူးစိုက်မှု, ဇာတ်ညွှန်းဖောက်ထွင်းနှင့်အချက်အလက်နှင့်အတူလက်ကမြင်းမှာကြိုးပမ်းမှုမှတ်တမ်းတင်ဖေါ်ပြခဲ့ပါတယ်");
"။ အဲဒီမှာကျိုးဘေးကင်းလုံခြုံမှုဖြစ်ခဲ့သည်သို့မဟုတ်ထို့ကြောင့်အုပ်ချုပ်ရေးမှူးအားအကြောင်းကြားကြပါရန်ကြိုးပမ်း" ပဲ့တင်သံ;
ထွက်ပေါက်;
} Else {
}
?>
အခုတော့ရှင်းပြချက်ရမညျ။ တစ်စိတ်တစ်ပိုင်း C_COOKIE တစ်ဦးယုံကြည်စိတ်ချရသောအရင်းအမြစ်မှကျွန်တော်တို့ကိုထံသို့မရောက်ရ။ အပြည့်အဝကျေနပ်မှုဖို့မျှော်လင့်ထားသည့်ရလဒ်အညီကျနော်တို့က၎င်း၏တန်ဖိုးကိုစစ်ဆေးနှင့်ပြဿနာများ၏အမှုအတွက်စီမံအုပ်ချုပ်သူကိုအကြောင်းကြား။ က, ထို့နောက်အဘယ်သူမျှမ action ကိုလာမအောင်ရန်မလိုအပ်ခဲ့ပါဘူး။ အကယ်. သငျသညျရိုးရှင်းစွာ register_globals ညွှန်ကြားချက်ကို disable သင့်ရဲ့ကုဒ်လုံခြုံစေတော်မမူကြောင်းကိုနားလည်သဘောပေါက်ရန်ရှိသည်။ ဒါကြောင့်အသုံးပြုသူထံမှ script ကိုလက်ခံရရှိကြောင်းမဆို variable ကို, မျှော်မှန်းတန်ဖိုး check လုပ်ထားရပါမည်။
ကောက်ချက်
ဤတွင်, ယေဘုယျ၌၎င်း, သငျသညျကိုအောင်မြင်စွာနှင့်လုံခြုံစိတ်ချစွာသူတို့ရဲ့အလုပ်အတွက်သူတို့ကိုသုံးစွဲဖို့ကမ္ဘာလုံးဆိုင်ရာ variable တွေကိုအကြောင်းကိုသိရန်လိုအပ်သမျှ။ တိုက်ခိုက်သူတွေအဆက်မပြတ်သူတို့ရဲ့နည်းလမ်းများနှင့်ကျွမ်းကျင်မှုတိုးတက်စေကြသည် - ဟုတ်ပါတယ်, အဘယ်သူမျှမသူတို့ကိုမနိုင်ကိုသုံးပါလိမ့်မည်ဟုအပြည့်အဝအာမခံချက်ရှိကွောငျးဆိုသညျကားဖြစ်ပါတယ်။ ဒါဟာကုဒ်အတွက်ကမ္ဘာလုံးဆိုင်ရာ variable တွေကိုအများဆုံးအသုံးပြုမှုကိုကန့်သတ်ထားရန်ထို့ကြောင့်နှစ်လိုဖွယ်ဖြစ်ပါသည်။ ကံကောင်းထောက်မစွာ, ဒီပရိုဂရမ်းမင်းဘာသာစကား၏တည်ဆောက်ပုံနှင့်ဒီဇိုင်း features တွေကဒီရည်မှန်းချက်အောင်မြင်ရန်နိုင်ပါတယ်။ ကံကောင်းပါစေ!
Similar articles
Trending Now