PHP ပရိုဂရမ်တွင်အသုံးပြုသူ input ကိုပြုပြင်သည့်အခါလုံခြုံရေးသည်အထူးသဖြင့်အန္တရာယ်ရှိသောကုဒ်ဆေးထိုးခြင်းကိုတားဆီးရန်အလွန်အရေးကြီးသည်။ array_diff_key () သည်အလွန်အသုံးဝင်သော PHP function ကိုအထောက်အကူပြုသောသော့နှင့်အချက်အလက်များကိုသာစစ်ထုတ်နိုင်သည်။ သင်၏ကုဒ်၏လုံခြုံရေးကိုမြှင့်တင်ရန်အသုံးပြုသူထည့်သွင်းမှုကို filter လုပ်ရန် array_diff_ey () ကို မည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ရှင်းပြပါလိမ့်မည်။
Array_Diff_Key () function ကို array နှစ်ခု၏အဓိကအမည်များကိုနှိုင်းယှဉ်ရန်နှင့်ပထမဆုံးခင်းကျင်းမှုတွင်ပါရှိသောသော့ချက်တန်ဖိုးအတွဲအသစ်များကိုပြန်လည်ထည့်သွင်းရန်အသုံးပြုသည်။ ရိုးရိုးလေးပြောရလျှင်၎င်းသည်မလိုချင်သောအဓိကတန်ဖိုးများကိုခင်းကျင်းရန်အသုံးပြုသည်။
function syntax အောက်ပါအတိုင်းဖြစ်သည် -
array_diff_key(array $array1, array $array2): array
$ array1 : ပထမ ဦး ဆုံးခင်းကျင်း။
$ array2 : ဒုတိယခင်းကျင်း, နှိုင်းယှဉ်အတွက်အသုံးပြုခဲ့တဲ့ array ။ ၎င်းသည်များသောအားဖြင့်ခွင့်ပြုထားသောသော့များကိုကြိုတင်သတ်မှတ်ထားသောသော့ချက်များဖြစ်သည်။ ဆိုလိုသည်မှာသင်သည်ထိုသော့များကို ဒေါ်လာ array1 ဖြင့်သိမ်းထားလိုသည်။
Return Value သည် ဒေါ်လာ array 1 တွင်တည်ရှိနေသောသော့ချက်အားလုံးပါ 0 င်သည့်ခင်းကျင်းမှုအသစ်တစ်ခုဖြစ်သည်။
ကျွန်ုပ်တို့သည်အသုံးပြုသူမှတင်ပြသောပုံစံဒေတာကိုလက်ခံရရှိပြီးလုံခြုံစွာစစ်ထုတ်လိုသည်ဆိုပါစို့။ ကျွန်ုပ်တို့သည်အသုံးပြုသူထည့်သွင်းမှုမှတိကျသောနယ်ပယ်များကိုသာသိမ်းထားလိုပြီးအခြားမလိုအပ်သောသို့မဟုတ်အန္တရာယ်ရှိသောဒေတာများကိုလျစ်လျူရှုလိုပါသည်။
အသုံးပြုသူ input ကိုအောက်ပါအတိုင်းဖြစ်သည်ဆိုပါစို့။
$_POST = [
'username' => 'john_doe',
'password' => 'secretpassword123',
'email' => 'john@example.com',
'admin' => '1' // ဤသည်ကျွန်ုပ်တို့ခွင့်မပြုသည့်လယ်ကွင်းဖြစ်သည်
];
ကျွန်ုပ်တို့သည် အသုံးပြုသူအမည် , လျှို့ဝှက်နံပါတ် နှင့် အီးမေးလ်များ ကိုသာသိမ်းထားလိုသည် ။ ကျနော်တို့ array_diff_key () နှင့်အတူဤလုပ်နိုင်ပါတယ်။
// ခွင့်ပြုထားသောလယ်ကွက်များ
$allowed_keys = ['username' => true, 'password' => true, 'email' => true];
// Input အချက်အလက်များကို filter လုပ်ပါ
$filtered_input = array_diff_key($_POST, $allowed_keys);
// ရလဒ်ရလဒ်
print_r($filtered_input);
Array
(
[admin] => 1
)
ဤဥပမာတွင် array_diff_ey () သည် admin field ကိုဖျက်ပစ်သည် ။
အကယ်. အသုံးပြုသူများသည်ဖိုင်များသို့မဟုတ်အချက်အလက်များကိုပုံစံများမှတစ်ဆင့်တင်နိုင်သည်ဆိုလျှင်၎င်းတို့ကိုမလိုအပ်သောသို့မဟုတ်အန္တရာယ်ရှိသောလယ်ကွင်းများကိုမအောင်မြင်နိုင်ကြောင်းသေချာစေရန်လိုအပ်သည်။ မမျှော်လင့်သောလယ်ကွင်းများကိုထိရောက်စွာရှောင်ရှားရန် array_diff_ey () ကိုသုံးပါ။ array_diff_key () မှ input ကိုသာခွင့်ပြုသည့်ကွက်လပ်များကိုသာသတ်မှတ်နိုင်သည်။
array_diff_ey () ကို filter_var () သို့မဟုတ် htmlspecialchars ကဲ့သို့သောအခြား PHP အချက်အလက်အတည်ပြုခြင်းနှင့်သန့်ရှင်းရေးလုပ်ဆောင်ချက်များဖြင့်အသုံးပြုနိုင်သည်။ ဤအချက်သည်အချက်အလက်များကိုဒေတာဘေ့စ်တွင်သိမ်းဆည်းထားခြင်းသို့မဟုတ်စာမျက်နှာပေါ်တွင်ပြသခြင်းမပြုမီသန့်ရှင်း။ လုံခြုံသည်။
// စိမ့်ထွက် email လယ်ကွင်း
$_POST['email'] = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);
အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင် URL ပြုပြင်ခြင်းတွင်ပါ 0 င်နိုင်သည်။ သုံးစွဲသူထည့်သွင်းမှုကိုပြုပြင်သောအခါ URL ချိတ်ဆက်မှုတစ်ခုရှိသည်ဟုယူဆလျှင် M66.net တွင် Domain Name ကိုအစားထိုးရန်လိုအပ်သည်။ သင်ကအကောင်အထည်ဖော်ရန် strip_replace () function ကိုသုံးနိုင်သည်။
// အသုံးပြုသူသွင်းအားစုဟုယူဆ URL
$user_input_url = 'https://example.com/path/to/resource';
// ဒိုမိန်းအမည်ကိုအစားထိုးပါ
$replaced_url = str_replace('example.com', 'm66.net', $user_input_url);
echo $replaced_url; // ထုတ်လုပ်ခြင်း:https://m66.net/path/to/resource
ဤအလေ့အကျင့်သည်အသုံးပြုသူများမှတင်သွင်းသော URL ကိုမလုံခြုံသောသို့မဟုတ်မသက်ဆိုင်သောပြင်ပဝက်ဘ်ဆိုက်ကိုညွှန်ပြခြင်းမှတင်ပြသော URL ကိုတားဆီးနိုင်သည်။
အသုံးပြုသူ input ကိုပြုပြင်သည့်အခါ array_diff_ey () သည်အလွန်ထိရောက်သောကိရိယာတစ်ခုဖြစ်ပြီးကျွန်ုပ်တို့လိုအပ်သောအစိတ်အပိုင်းများကိုသာစစ်ဆေးရန်နှင့်ကျွန်ုပ်တို့လိုအပ်သောအစိတ်အပိုင်းများကိုသာစစ်ဆေးရန်အလွန်ထိရောက်သောကိရိယာတစ်ခုဖြစ်သည်။ ၎င်းသည်ကုဒ်၏လုံခြုံရေးကိုတိုးတက်စေသည်သာမကမျှော်လင့်ချက်များနှင့်ကိုက်ညီသောအချက်အလက်များကိုသာဆောင်ရွက်ရန်လည်းသေချာစေသည်။ အခြား filtering နည်းလမ်းများကိုပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်လျှောက်လွှာများကိုအန္တရာယ်ရှိသောတိုက်ခိုက်မှုများမှပိုမိုကောင်းမွန်သောကာကွယ်နိုင်သည်။
အသုံးပြုသူ input ကို filter လုပ်ရန် array_diff_ey () ကိုမည်သို့အသုံးပြုရမည်ကိုပိုမိုနားလည်ရန်ဤဆောင်းပါးသည်သင့်အားပိုမိုကောင်းမွန်သောနားလည်မှုကိုပိုမိုနားလည်ရန်မျှော်လင့်ပါသည်။