<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// ဤအပိုင်းသည် Pre-code pegalment ဖြစ်သည်,ဆောင်းပါး၏အကြောင်းအရာနှင့်အတူလုပ်ဖို့ဘာမျှမရှိပါတယ်</span></span><span>
</span><span><span class="hljs-variable">$timestamp</span></span><span> = </span><span><span class="hljs-title function_ invoke__">time</span></span><span>();
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"လက်ရှိ timestamp ဖြစ်ပါတယ်:<span class="hljs-subst">$timestamp</span></span></span><span>\n";
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">str_repeat</span></span><span>(</span><span><span class="hljs-string">"-"</span></span><span>, </span><span><span class="hljs-number">50</span></span><span>) . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
--------------------------------------------------
တည်နေ PHP ဖွံ့ဖြိုးမှုအောက်မှာ,အသုံးပြုသူ input ကိုဒေတာကိုထုတ်ယူတဲ့အခါ,ဒေတာလုံခြုံရေးသည်အရေးပါသည်。အထူးသဖြင့်ဒေတာဘေ့စ်လုပ်ငန်းများပါ 0 င်သည့်အခြေအနေများတွင်,ဥပမာအားဖြင့်, အသုံးပြုသူတင်ပြချက်များကို process လုပ်ပါ ID。အသုံးပြုသူ - ပေးထားသောဒေတာများကိုဒေတာဘေ့စ်သို့တိုက်ရိုက်ဖြည့်စွက်ပါက,အဲဒါကိုဖြစ်ပေါ်စေတယ် SQL ထိုးသို့မဟုတ်ယုတ္တိဗေဒအားနည်းချက်。စင်ကြယ်သောနံပါတ်များသည် ID,PHP အလွန်အဆင်ပြေ function ကိုထောက်ပံ့ပေးသည် `</span><span><span class="hljs-title function_ invoke__">ctype_digit</span></span><span>()`,အတည်ပြုခြင်း၏လုံခြုံရေးကိုထိရောက်စွာတိုးတက်စေနိုင်သည်。
</span><span><span class="hljs-comment">### 1. `ctype_digit()` အဲဒါဘာလဲ?</span></span><span>
`</span><span><span class="hljs-title function_ invoke__">ctype_digit</span></span><span>()` ဟုတ်ကဲ့ PHP built-in လုပ်ဆောင်ချက်များကို,用于检查字符串ဟုတ်ကဲ့否全部由数字字符组成。၎င်း၏ syntax အောက်ပါအတိုင်းဖြစ်ပါတယ်:
```php
</span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-title function_ invoke__">ctype_digit</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$text</span></span><span>)
</span></span>String တွင်ဇာတ်ကောင်တစ်မျိုးစီသည်နံပါတ် ( 0-9 ) ဟုညွှန်ပြရန် မှန်ကန်သော ပြန်လာရန်။
string သည်ဂဏန်းမဟုတ်သောအက္ခရာများသို့မဟုတ်အချည်းနှီးသောကြိုးများပါ 0 င်ကြောင်းညွှန်ပြရန်မှားယွင်းပါ ။
သတိပြုသင့်သည်မှာ Cype_digit () သည် string type များကိုသာလက်ခံသည်။ အကယ်. ကိန်းဂဏန်းတစ်ခုချင်းစီကို 0 င်လာပါက၎င်းသည် မှားယွင်းသော နောက်သို့ပြန်ပို့သည်။ ထို့ကြောင့် input ကိုအတည်ပြုခြင်းမပြုမီ string တစ်ခုသို့ပြောင်းလဲရန်လိုအပ်သည်။
ကျွန်ုပ်တို့တွင်သုံးစွဲသူ ID ကိုရရှိသော parameter သည်မှတစ်ဆင့်ဖြတ်သန်းသွားပြီဆိုပါစို့။
<span><span><span class="hljs-variable">$userId</span></span><span> = </span><span><span class="hljs-variable">$_GET</span></span><span>[</span><span><span class="hljs-string">'id'</span></span><span>] ?? </span><span><span class="hljs-string">''</span></span><span>;
</span></span>ဒေတာဘေ့စ်စုံစမ်းမှုအတွက် $ userID ကို တိုက်ရိုက်သုံးပါက၎င်းသည်လုံခြုံရေးဆိုင်ရာအန္တရာယ်များဖြစ်စေနိုင်သည်။
<span><span><span class="hljs-variable">$sql</span></span><span> = </span><span><span class="hljs-string">"SELECT * FROM users WHERE id = <span class="hljs-subst">$userId</span></span></span><span>"; </span><span><span class="hljs-comment">// စိတ်မချသော</span></span><span>
</span></span>ဤသို့ပြုလုပ်ရန်မှန်ကန်သောနည်းလမ်းမှာ ID သည်စင်ကြယ်သောနံပါတ်ဟုတ်မဟုတ်ကိုအတည်ပြုရန်ဖြစ်သည်။
<span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">ctype_digit</span></span><span>(</span><span><span class="hljs-variable">$userId</span></span><span>)) {
</span><span><span class="hljs-comment">// လုံခွုံမှု:ယုံကြည်မှုနှင့်အတူအသုံးပြုနိုင်ပါသည်</span></span><span>
</span><span><span class="hljs-variable">$sql</span></span><span> = </span><span><span class="hljs-string">"SELECT * FROM users WHERE id = <span class="hljs-subst">$userId</span></span></span><span>";
</span><span><span class="hljs-comment">// ဒေတာဘေ့စ်စုံစမ်းမှုလုပ်ဆောင်ပါ</span></span><span>
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-comment">// တရားမဝင် input ကို</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"တရားမဝင်အသုံးပြုသူ ID!"</span></span><span>;
}
</span></span>ဤနည်းအားဖြင့် '1 သို့မဟုတ် 1 = 1' ကဲ့သို့သောမကောင်းသောအကြောင်းအရာများကို 0 င်ရောက်သော်, Ctype_digit () မှ cypype_digit ()) ကို 0 င်ရောက်နိုင်မည်ဆိုပါက၎င်းကို Cype_Digit () မှ ကြားဖြတ်လိမ့်မည်။
developer အများအပြားသည်နံပါတ်များကိုတရားစီရင်ရန် is_numeric () ကို သုံးနိုင်သည်။ သို့သော်၎င်းသည် Centpe_Digit () နှင့်သိသိသာသာကွဲပြားသည်။
is_numeric () သည် "1.23" သို့မဟုတ် "-123" ကိုနံပါတ်အဖြစ်ထည့်သွင်းစဉ်းစားလိမ့်မည်။
ctalepe_digit () စင်ကြယ်သောကိန်းကြိုးများကို သာခွင့်ပြုပြီးအနုတ်လက္ခဏာများသို့မဟုတ်ဒ decimal မအချက်များမရရှိနိုင်ပါ။
ထို့ကြောင့် ID ကဲ့သို့သောဒေတာဘေ့စ်အဓိကသော့ချက်များနှင့်ဆက်ဆံရာတွင် Cype_digit () သည်ပိုမိုတင်းကျပ်။ လုံခြုံသည်။
လက်တွေ့ကျသော application များအရ string type id ကိုစိစစ်အတည်ပြုပြီးနောက်စိစစ်အတည်ပြုပြီးနောက်စိစစ်အတည်ပြုအဖြစ်ပြောင်းလဲရန်ဖြစ်နိုင်ပါတယ်။
<span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">ctype_digit</span></span><span>(</span><span><span class="hljs-variable">$userId</span></span><span>)) {
</span><span><span class="hljs-variable">$safeId</span></span><span> = (</span><span><span class="hljs-keyword">int</span></span><span>)</span><span><span class="hljs-variable">$userId</span></span><span>; </span><span><span class="hljs-comment">// Integer အမျိုးအစားသို့ပြောင်းပါ</span></span><span>
</span><span><span class="hljs-variable">$sql</span></span><span> = </span><span><span class="hljs-string">"SELECT * FROM users WHERE id = <span class="hljs-subst">$safeId</span></span></span><span>";
}
</span></span>ဤနည်းအားဖြင့်ဒေတာဘေ့စ်သည်မေးမြန်းချက်များကိုကွပ်မျက်လျှင်ပင် string splicing ကြောင့်ဆေးထိုးအန္တရာယ်မရှိပါ။
Coverpe_digit () သည်စင်ကြယ်သောဒစ်ဂျစ်တယ် ID များကိုကိုင်တွယ်ရန်အတွက်လုံခြုံရေးအတည်ပြုကိရိယာတစ်ခုဖြစ်သည်။
၎င်းသည် is_numeric () ထက်ပိုမိုတင်းကျပ်သည်, အနုတ်လက္ခဏာများနှင့်ဒ dec မနစ်စသည့်တရားမ 0 င်စာလုံးများကိုရှောင်ရှားခြင်းထက် ပို. တင်းကျပ်သည်။
အတည်ပြုပြီးသည်နှင့်ဒေတာလုံခြုံရေးကိုတိုးတက်စေရန်ခိုင်မာသောပြောင်းလဲခြင်းနှင့်ပေါင်းစပ်။ အသုံးပြုနိုင်ပါသည်။
၎င်းကိုအသုံးပြုခြင်းသည်တရားမ 0 င်အချက်အလက်ဆေးထိုးခြင်းနှင့်သင်၏လျှောက်လွှာ၏လုံခြုံရေးနှင့်တည်ငြိမ်မှုကိုတိုးတက်စေနိုင်သည်။
ရိုးရှင်းသော Cype_digit () အတည်ပြုခြင်းဖြင့်အဆင်ပြေချောမွေ့သည့်အခြေအနေတွင်အသုံးပြုသူမှ 0 င်ရောက်သောစင်ကြယ်သောဒစ်ဂျစ်တယ် ID ကိုလုံခြုံစွာပြုလုပ်နိုင်သည်။
<span></span>