0 က်ဘ်ဆိုက်ဖွံ့ဖြိုးတိုးတက်မှုလုပ်ငန်းစဉ်အတွင်းအလိုအလျောက်အန္တရာယ်ရှိသောတိုက်ခိုက်မှုများသို့မဟုတ်အလိုအလျောက်မှတ်ပုံတင်ခြင်းကိုတားဆီးရန်ကျွန်ုပ်တို့သည် Image Verification codes များကိုစစ်ဆေးရန်အသုံးပြုသည်။ ဤဆောင်းပါးသည် PHP ကိုပုံရိပ်အတည်ပြုကုဒ်များကိုထုတ်လုပ်ရန်နှင့်အတည်ပြုရန်နှင့်သက်ဆိုင်ရာစာရွက်စာတမ်းများကိုဖော်ပြရန်မည်သို့အသုံးပြုရမည်ကိုပြသပါလိမ့်မည်။
Image Verification codes များကိုထုတ်လုပ်သည့်အဓိကအချက်မှာကျပန်းအတည်ပြုကုဒ် string ကိုထုတ်လုပ်ရန်နှင့်ပုံပေါ်သို့ဆွဲရန်ဖြစ်သည်။ PHP Code ဥပမာတစ်ခု
<?php
session_start();
// ပုံအရွယ်အစားကြေညာပါ
$image_width = 100;
$image_height = 40;
// ပုံအရင်းအမြစ်များကိုဖန်တီးပါ
$image = imagecreatetruecolor($image_width, $image_height);
// နောက်ခံအရောင် generate
$bg_color = imagecolorallocate($image, mt_rand(200, 255), mt_rand(200, 255), mt_rand(200, 255));
imagefill($image, 0, 0, $bg_color);
// အတည်ပြုကုဒ် string ကို generate
$chars = 'ABCDEFGHJKLMNPQRSTUVWXYZabcdefghjkmnpqrstuvwxyz23456789';
$code = '';
for ($i = 0; $i < 4; $i++) {
$code .= $chars[mt_rand(0, strlen($chars) - 1)];
}
// အတည်ပြုကုဒ် string ကိုသိမ်းပါsessionအလယ်ပိုင်း,နောက်ဆက်တွဲစိစစ်အတည်ပြုသည်
$_SESSION['captcha'] = $code;
// အတည်ပြုကုဒ်စာသားဆွဲပါ
$font_file = 'path_to_your_font.ttf'; // သင်၏ကိုယ်ပိုင် font file လမ်းကြောင်းကိုအစားထိုးပါ
$text_color = imagecolorallocate($image, 0, 0, 0); // စာသားအရောင်သည်အနက်ရောင်ဖြစ်သည်
imagettftext($image, 20, 0, 10, 30, $text_color, $font_file, $code);
// output ကိုပုံ
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>
အထက်ဖော်ပြပါကုဒ်သည် ImagecreatetRuecolor function မှတဆင့်သတ်မှတ်ထားသောအကျယ်နှင့်အမြင့်နှင့်အတူပုံရိပ်အရင်းအမြစ်ကိုဖန်တီးပေးသည်။ ထို့နောက်နောက်ခံအရောင်ကို isolorecolorallationallation function ကိုမှတစ်ဆင့်ထုတ်လုပ်ပြီးပုံတစ်ခုလုံးပြည့်နှက်နေသည်။ နောက်ဆုံးအနေဖြင့် IgeettingText function ကို အသုံးပြု. ပုံရိပ်ကိုအတည်ပြုသည့်ကုဒ်နံပါတ်ကိုရေးဆွဲပြီးနောက်ဆုံးတွင်ထုတ်လုပ်ထားသောပုံရိပ်သည် ImagePng function ကို အသုံးပြု. output ကိုဖြစ်သည်။
Image Verification Code ကိုအတည်ပြုသည့်အခါအသုံးပြုသူမှထည့်သွင်းထားသောအတည်ပြုနံပါတ်ကို session တွင်သိမ်းဆည်းထားသောအတည်ပြုကုဒ်နှင့်နှိုင်းယှဉ်ရန်လိုအပ်သည်။ အောက်ဖော်ပြပါအချက်သည် PHP ကုဒ်နံပါတ်ဖြစ်သည်
<?php
session_start();
// အသုံးပြုသူအားဖြင့်ထည့်သွင်းအတည်ပြုကုဒ် string ကိုရယူပါ
$user_input = $_POST['captcha'];
// သိမ်းဆည်းရsessionအလယ်ပိုင်း的验证码字符串
$server_code = $_SESSION['captcha'];
// အသုံးပြုသူမှထည့်သွင်းထားသောအတည်ပြုကုဒ်သည်သိမ်းဆည်းထားသောအတည်ပြုကုဒ်နှင့်ကိုက်ညီကြောင်းစစ်ဆေးပါ
if (strcasecmp($user_input, $server_code) === 0) {
// အတည်ပြုကုဒ်မှန်ကန်သည်,သက်ဆိုင်ရာစစ်ဆင်ရေးလုပ်ဆောင်ပါ
echo 'အတည်ပြုကုဒ်မှန်ကန်သည်';
} else {
// အတည်ပြုကုဒ်အမှား,အသုံးပြုသူကိုပြန်လည်ထည့်သွင်းပါ
echo 'အတည်ပြုကုဒ်အမှား';
}
?>
အထက်ပါကုဒ်သည်ပထမ ဦး ဆုံး session ကို အသုံးပြု. အသုံးပြုသူမှ _post array မှတဆင့်ထည့်သွင်းထားသောအတည်ပြုကုဒ်ကိုရရှိသည်။ strivsecmp function မှတဆင့်ကြိုးနှစ်ချောင်းနှိုင်းယှဉ်ပါ။ သူတို့ကိုက်ညီမယ်ဆိုရင်ဒါဟာအတည်ပြုကုဒ်မှန်ကန်တယ်, သက်ဆိုင်ရာစစ်ဆင်ရေးကိုဖျော်ဖြေနိုင်ပါတယ်; သူတို့မကိုက်ညီပါကအတည်ပြုကုဒ်သည်မှားကြောင်းသတိပေးသည်။
အထက်ပါ PHP ကုဒ်များမှတစ်ဆင့်ပုံရိပ်အတည်ပြုကုဒ်များ၏မျိုးဆက်နှင့်စိစစ်အတည်ပြုလုပ်ဆောင်ချက်များကိုအောင်မြင်စွာနားလည်နိုင်သည်။ အတည်ပြုနံပါတ်ကိုထုတ်ပေးသောကုဒ်ကိုသီးခြားဖိုင်တစ်ခုအဖြစ်သိမ်းဆည်းထားနိုင်သည်။ အတည်ပြုကုဒ်ကိုအတည်ပြုသည့်ကုဒ်ကိုအတည်ပြုသည့်ကုဒ်ကိုပုံစံတင်သွင်းမှု၏လုပ်ဆောင်မှုစာမျက်နှာတွင်ထည့်နိုင်သည်။
အမှန်တကယ် application များအရအထက်ပါလုပ်ဆောင်ချက်များအပြင်, 0 င်ရောက်စွက်ဖက်မှုလိုင်းများကိုပေါင်းထည့်ခြင်း,