လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> အသုံးပြုသူထည့်သွင်းမှုရှိအထူးအက္ခရာများကိုရှင်းလင်းရန်ပုံမှန်အသုံးအနှုန်းများကိုသုံးပါ

အသုံးပြုသူထည့်သွင်းမှုရှိအထူးအက္ခရာများကိုရှင်းလင်းရန်ပုံမှန်အသုံးအနှုန်းများကိုသုံးပါ

M66 2025-06-05

အသုံးပြုသူထည့်သွင်းမှုအပြောင်းအလဲအတွက်အထူးသဖြင့်တရုတ်, ဂျပန်နှင့်ကိုးရီးယားစသည့်ဇာတ်ကောင်များပါ 0 င်သည့်ဘာသာစကားများ (ဥပမာအားဖြင့်တရုတ်, ဂျပန်နှင့်ကိုးရီးယား) တို့ပါ 0 င်သည့်ဘာသာစကားများ, ဤပြ problem နာကိုဖြေရှင်းရန် PHP သည် Multi-byte-completated function mb_eregi_replace ကို ထောက်ပံ့ပေးနိုင်သည်။

mb_eregi_replace မိတ်ဆက်ခြင်း

MB_eregi_replace သည်ပုံမှန်အသုံးအနှုန်းများနှင့်ကိုက်ညီသောအလွှာများကိုရှာဖွေခြင်းနှင့်သတ်မှတ်ထားသောအကြောင်းအရာများနှင့်အစားထိုးရန်ကိစ္စမရှိသည့် တိုးချဲ့ပညာ တိုးချဲ့မှုတွင်လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည့်လုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ ၎င်း၏ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 string mb_eregi_replace(string $pattern, string $replacement, string $string [, string $option])
  • $ ပုံစံ - ပုံမှန်စကားရပ်ပုံစံ။

  • $ အစားထိုး : ပွဲကိုအစားထိုးရန်အသုံးပြုသော string ကို။

  • $ string : လုပ်ငန်းများ၌ခံရဖို့မူရင်း string ကို။

  • $ option ကို : optional ကိုဇာတ်ကောင် encoding ။

အထူးအက္ခရာများကိုရှင်းလင်းရေးအတွက်လက်တွေ့ကျသောဥပမာများ

application တစ်ခုတွင်အသုံးပြုသူမှ @, #, $,%, ^, စသည်တို့ကဲ့သို့သောအထူးအက္ခရာများပါ 0 င်နိုင်သည်။ ဤစာလုံးများကိုရှင်းလင်းရန် MB_ereGi_rereplace မှတဆင့် function ကိုကျွန်ုပ်တို့ရေးနိုင်သည်။

နမူနာကုဒ်:

 function sanitize_input($input) {
    // ပုံမှန်အသုံးအနှုန်းများ:အက္ခရာများကိုသိမ်းထားပါ、ဂဏန်း、နေရာများနှင့်တရုတ်,ကြွင်းသောအရာကိုအချည်းနှီးဖြင့်အစားထိုးပါ
    $pattern = '[^a-zA-Z0-9\x{4e00}-\x{9fa5}\s]';
    $replacement = '';
    return mb_eregi_replace($pattern, $replacement, $input, 'UTF-8');
}

// စမ်းသပ်နမူနာ
$user_input = "အလည်အပတ်ခရီးမှလှိုက်လှဲစွာကြိုဆိုပါသည် m66.net!ဒါ@#စမ်းသပ်မှု$%ဝင်ရောက်^&ကေြနပ်သော。";
$clean_input = sanitize_input($user_input);
echo $clean_input;

ရလဒ်ရလဒ် -

 အလည်အပတ်ခရီးမှလှိုက်လှဲစွာကြိုဆိုပါသည် m66netဒါစမ်းသပ်မှုဝင်ရောက်ကေြနပ်သော

ဤဥပမာတွင်တရုတ်နှင့်အင်္ဂလိပ်အက္ခရာများမဟုတ်ဘဲအင်္ဂလိပ်အက္ခရာများမဟုတ်သည့်စာလုံးများကိုအစားထိုးရန် Unicode နှင့်သဟဇာတဖြစ်သောပုံမှန်စကားရပ်ကိုအသုံးပြုသည် ITF-8 ' encoding specoding နှင့် တွဲဖက်. Conn} 4e00}: \ x {9fa5 {9fa5} တွင်အသုံးပြုရကျိုးနပ်သည်။

မှတ်သားရန်အရာ

  1. စွမ်းဆောင်ရည်ဆိုင်ရာပြ issues နာများ - MB_ereGi_replace သည်စာမတတ်နိုင်သော mbstring extension ကို အခြေခံ. ပုံမှန်လုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ Multibyte ဇာတ်ကောင်အထောက်အပံ့လိုအပ်သည့်အခါသာ၎င်းကိုအသုံးပြုရန်အကြံပြုသည်။

  2. ဇာတ်ကောင် encoding ရှင်းရှင်းလင်းလင်းဖြစ်ရပါမည်

  3. ပုံမှန်အသုံးအနှုန်းမှလွတ်မြောက်ရန်ပြ problem နာ - ရှုပ်ထွေးသောပုံစံများကိုတည်ဆောက်ရာတွင်ပုံမှန် syntax အမှားများကိုရှောင်ရှားရန်အထူးသင်္ကေတများကိုလွတ်မြောက်ရန်သေချာစေပါ။

လက်တွေ့ကျသောလျှောက်လွှာအကြံပြုချက်များ

အကယ်. သင်သည် form processor ကိုတည်ဆောက်နေပါကအသုံးပြုသူအမည်, Commonse Commission စသည်တို့ကို filter လုပ်ရန်လိုအပ်ပါက MB_eregi_replain ကို သုံးပါ။ ဥပမာအားဖြင့်, အသုံးပြုသူမှတ်ပုံတင်ပုံစံတွင်အောက်ပါနည်းလမ်းကို အသုံးပြု. ဆာဗာပေါ်ရှိအသုံးပြုသူအမည်ပြောင်ကိုသန့်ရှင်းရေးပြုလုပ်နိုင်သည်။

 $nickname = sanitize_input($_POST['nickname']);

ဤနည်းအားဖြင့် XSS တိုက်ခိုက်မှုများနှင့်တရားမ 0 င်အက္ခရာများကိုထိုးသွင်းခြင်းကဲ့သို့သောလုံခြုံရေးဆိုင်ရာပြ issues နာများကိုထိရောက်စွာရှောင်ရှားနိုင်ပြီးသုံးစွဲသူထည့်သွင်းမှုစံနှုန်းကိုလည်းတိုးတက်စေနိုင်သည်။

ကောက်ချက်

အသုံးပြုသူ input ကိုပြုပြင်သည့်အခါလုံခြုံရေးနှင့်လိုက်ဖက်မှုသည်ထိပ်တန်း ဦး စားပေးဖြစ်သည်။ MB_ereGi_replace သည် input မှအထူးအက္ခရာများကိုရှင်းလင်းရန်အစွမ်းထက်။ လုံခြုံသောနည်းလမ်းဖြစ်သည်။ PHP 8.0 ( MB_ereg_replace အကြံပြုသည်) ဤလုပ်ဆောင်မှုကိုလျှော့ချခဲ့သော်လည်း PHP ၏ဗားရှင်းအဟောင်းများကိုအသုံးပြုနေသောစီမံကိန်းများတွင်ယုံကြည်စိတ်ချရသောရွေးချယ်မှုတစ်ခုဖြစ်နေဆဲပင်။ ပြုပြင်ထိန်းသိမ်းမှုကိုစဉ်ဆက်မပြတ်အဆင့်မြှင့်တင်ရန်လိုအပ်သောစီမံကိန်းများအတွက်ပိုမိုကောင်းမွန်သောစွမ်းဆောင်ရည်နှင့်လိုက်ဖက်ညီမှုအတွက်ပိုမိုခေတ်မီသောအခြားရွေးချယ်စရာသို့ပြောင်းရွှေ့ရန်အကြံပြုပါသည်။