ဝက်ဘ်ဆိုက်များကိုတီထွင်သည့်အခါအတည်ပြုကုဒ်စနစ်များသည်အန္တရာယ်ရှိသောမှတ်ပုံတင်ခြင်းနှင့်စက်ရုပ်တိုက်ခိုက်မှုများကိုကာကွယ်ရန်အရေးကြီးသောနည်းလမ်းများဖြစ်သည်။ PHP တွင် Custom Image Verification codes များကိုအလွယ်တကူဖန်တီးနိုင်သည့်အစွမ်းထက်သော GD စာကြည့်တိုက်တွင်ပါ 0 င်သည်။ ၎င်းတို့အနက် ImageFontwidth function သည် dynamally ကို dynamally dynamally ကို dynamally တွက်ချက်မှုကိုထိန်းချုပ်ရန်ကူညီနိုင်သည်, အတည်ပြုကုဒ်၏ပုံရိပ်၏ပုံရိပ်၏ adfterth design ကိုနားလည်သဘောပေါက်ခြင်း, အတည်ပြုကုဒ်ကိုပိုမိုလှပပြီးအကျိုးသင့်အကြောင်းသင့်ရှိသည်။
ဤဆောင်းပါးသည်လိုက်လျောညီထွေရှိသော width image systement code system တစ်ခုအားအကောင်အထည်ဖော်ရန် PHPFontfontwidth function ကိုမည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ရှင်းပြပါမည်။
ImageFontwidth သည် Php GD စာကြည့်တိုက်တွင်အလုပ်လုပ်နေသော font တစ်ခု၏အ 0 တ်တစ်ခု၏အကျယ် (ယူနစ်များ) ၏အကျယ် (ယူနစ်များ - pixels) ကိုပြန်လည်ရောက်ရှိစေသော function တစ်ခုဖြစ်သည်။ အခြေခံအသုံးပြုမှုမှာအောက်ပါအတိုင်းဖြစ်သည် -
imagefontwidth(int $font): int
Parameter $ ဖောင့် သည်စာလုံးအရွယ်အစားကိုကိုယ်စားပြုသောကိန်းအရွယ်အစားကိုကိုယ်စားပြုသည့်ကိန်းတစ်ခုဖြစ်ပြီးနံပါတ် (1) မှ 5 အထိရှိသည်။
ဒီ function ကို imagefonteight နှင့် တွဲဖက်. မကြာခဏအသုံးပြုလေ့ရှိပြီးဇာတ်ကောင်များကသိမ်းပိုက်ထားသောနေရာကိုတိတိကျကျတွက်ချက်ရန်အသုံးပြုသည်။
လိုက်လျောညီထွေစွာအကျယ်နှင့်အတူအတည်ပြုကုဒ်ရုပ်ပုံကိုဖန်တီးရန်, အဓိကအဆင့်များမှာ -
အတည်ပြုကုဒ် strings (များသောအားဖြင့်ကျပန်းအက္ခရာများနှင့်နံပါတ်များပေါင်းစပ်)
အတည်ပြုကုဒ်၏စုစုပေါင်း width ကိုတွက်ချက် <br> <br> အက်ခရာတစ်ခုတည်း၏အကျယ်ကိုရရန် imagefontwidth ကို သုံး. အက်ခရာအရေအတွက်ဖြင့်မြှောက်။ အတည်ပြုကုဒ်တစ်ခုလုံးကိုရရန်လိုအပ်သော width ကိုရယူပါ
width အပေါ်အခြေခံပြီးပတ်တူဖန်တီးပါ သတ်မှတ်ထားသောအကျယ်နှင့်အမြင့်နှင့်အတူပုံများဖန်တီးရန် imagecreatetrecolor ကို သုံးပါ
အတည်ပြုကုဒ်စာလုံးများကိုဆွဲပါ left မှညာသို့စီစဉ်ထားသောနိုင်ရန်အတွက်ပုံရိပ်သို့အက္ခရာများရေးပါ
အရင်းအမြစ်များနှင့်အရင်းအမြစ်များကိုဖျက်ဆီး
imagefontwidth အပေါ် အခြေခံ. လိုက်လျောညီထွေဖြစ်အောင်လုပ်ထားသည့်မျက်နှာပြင်အတည်ပြုကုဒ်ကိုမည်သို့အကောင်အထည်ဖော်မည်ကိုပြသသည့်အပြည့်အဝနမူနာကုဒ်ဖြစ်သည်။
<?php
// ကျပန်းအတည်ပြုကုဒ် string ကိုထုတ်လုပ်ပါ
function generateCaptchaCode($length = 5) {
$chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789'; // ရှုပ်ထွေးသောဇာတ်ကောင်များကိုရှောင်ပါ
$code = '';
for ($i = 0; $i < $length; $i++) {
$code .= $chars[random_int(0, strlen($chars) - 1)];
}
return $code;
}
// အဓိကလုပ်ဆောင်ချက်သည်အတည်ပြုကုဒ်ရုပ်ပုံကိုထုတ်ပေးသည်
function createCaptchaImage($code) {
$font = 5; // built-in စာလုံးအရွယ်အစားကိုသုံးပါ5
$charWidth = imagefontwidth($font);
$charHeight = imagefontheight($font);
$padding = 10; // ဘယ်ဘက်နှင့် left အနားသတ်
// ပုံအကျယ်နှင့်အမြင့်တွက်ချက်
$width = $charWidth * strlen($code) + $padding * 2;
$height = $charHeight + $padding * 2;
// ပုံအရင်းအမြစ်များကိုဖန်တီးပါ
$image = imagecreatetruecolor($width, $height);
// အရောင်သတ်မှတ်ပါ
$bgColor = imagecolorallocate($image, 255, 255, 255); // အဖြူရောင်နောက်ခံ
$textColor = imagecolorallocate($image, 0, 0, 0); // အနက်ရောင်စာသား
$noiseColor = imagecolorallocate($image, 100, 120, 180); // ဆူညံသံအရောင်
// နောက်ခံဖြည့်ပါ
imagefilledrectangle($image, 0, 0, $width, $height, $bgColor);
// ဝင်ရောက်စွက်ဖက်ဆူညံသံကိုထည့်ပါ
for ($i = 0; $i < 50; $i++) {
imagesetpixel($image, random_int(0, $width), random_int(0, $height), $noiseColor);
}
// ဇာတ်ကောင်အားဖြင့်အတည်ပြုကုဒ်စာသားဆွဲပါ
$x = $padding;
$y = $padding;
for ($i = 0; $i < strlen($code); $i++) {
imagestring($image, $font, $x, $y, $code[$i], $textColor);
$x += $charWidth;
}
// output ကိုရုပ်ပုံ header
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
}
// အတည်ပြုကုဒ် string ကို generate
$captchaCode = generateCaptchaCode(6);
// output ကိုအတည်ပြုကုဒ်ရုပ်ပုံ
createCaptchaImage($captchaCode);
?>
လိုက်လျောညီထွေကြားသောအကျယ် - code သည် imagefontwidth မှတစ်ဆင့်စာလုံးတစ်လုံးတည်းကို dynamatically condatth ကိုတွက်ချက်သည်။ အတည်ပြုကုဒ်နံပါတ်များကိုမြှောက်ထားပြီး,
font size : ဥပမာအားဖြင့် GD built-in font 5 ကိုအသုံးပြုသည်။ အကယ်. သင်သည်ပိုမိုကောင်းမွန်သောအမြင်အာရုံအကျိုးသက်ရောက်မှုလိုအပ်ပါက truetype font ကို load လုပ်ရန် IgrotttEpt ကို သုံးနိုင်သည်။
လုံခြုံရေး - အတည်ပြုကုဒ်ကိုထုတ်လုပ်ပြီးနောက်အတည်ပြုကုဒ် string ကို session ကို session ကိုတင်ပြသောအခါအတည်ပြုရန်အတွက် session ထဲမှာသိမ်းဆည်းထားနိုင်ပါတယ်။
အလှအပဆိုင်ရာ - သင်သည်ဆူညံသံနှင့်ခါးဆစ်များကိုထပ်ထည့်နိုင်သည်သို့မဟုတ်စိစစ်ရေးကုဒ်များ၏ဆန့်ကျင်ရေးစွမ်းရည်ကိုမြှင့်တင်ရန် font အရောင်ပြောင်းနိုင်သည်။
PHP ၏ imagefontwidth function မှတစ်ဆင့်ကျွန်ုပ်တို့သည်အက်ခရာတစ်ခုတည်း၏အကျယ်ကိုတိကျစွာရယူပြီးအတည်ပြုကုဒ်၏အကျယ်၏အရိပ်၏ width ကိုပြောင်းလဲခြင်းကိုသဘောပေါက်နိုင်သည်။ ဤနည်းလမ်းသည်ရိုးရိုးရှင်းရှင်းနှင့်အကျိုးရှိသည်။ အခြေခံလိုက်လျောညီထွေသော width image scrication codes များကိုထုတ်လုပ်ရန်သင့်တော်သည်။
ရှုပ်ထွေးသောအတည်ပြုကုဒ်အကျိုးသက်ရောက်မှုများလိုအပ်ပါကအခြား GD ပုံဆွဲလုပ်ဆောင်ချက်များကိုပေါင်းစပ်နိုင်သည်သို့မဟုတ်တတိယပါတီအတည်ပြုသည့်ကုဒ်စာကြည့်တိုက်ကိုသုံးနိုင်သည်။