اشتراک در سوال
رای ها
[dataList]
تولید کپچا عددی
سلام دوستان نمیدونم چرا نمیشه با فریم ورک استاد تولید کد کپچا کرد (شایدم من بلد نیستم)
ببینید من کدهای زیر رو در فایل پی اچ پی ریختم
<?php
session_start();
$random = md5(rand());
$captcha_vms = substr($random, 0, 6);
$_SESSION["captcha_vms"] = $captcha_vms;
$target = imagecreatetruecolor(70,30);
$captcha_background = imagecolorallocate($target, 255, 78, 19);
imagefill($target,0,0,$captcha_background);
$captcha_fore_color = imagecolorallocate($target, 0, 0, 0);
imagestring($target, 8, 5, 5, $captcha_vms, $captcha_fore_color);
header("Content-type: image/jpeg");
imagejpeg($target);
?>
و از کدهای زیر هم در صفحه ام برای صدا زدن کد کپچا استفاده کردم
<p>
<img src="../../function/capcha.php" width="120" height="30" border="1" alt="CAPTCHA"></p>
<p><button class="btnRefresh">کد جدید</button></p>
<p>کد را وارد نمایید <input type="text" id="result_vms" name="result_vms"></p>
ولی وقتی اجرا میکنم کل صفحه سایتم مشکی میشه و خطای زیر رو نمایش میده.
ممنون میشم کمکم کنید کارم گیره.
0
0
از recaptcha به دلایلی نمیخوام استفاده کنم.ممنونم (5 سال پیش)
برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال
Sajad HP
5 سال پیش
0
0
<?php
session_start();
//Settings: You can customize the captcha here
$image_width = 120;
$image_height = 40;
$characters_on_image = 6;
$font = 'monofont.ttf';
//The characters that can be used in the CAPTCHA code.
//avoid confusing characters (l 1 and i for example)
$possible_letters = '23456789bcdfghjkmnpqrstvwxyz';
$random_dots = 0;
$random_lines = 20;
$captcha_text_color="0x142864";
$captcha_noice_color = "0x142864";
$code = '';
$i = 0;
while ($i < $characters_on_image) {
$code .= substr($possible_letters, mt_rand(0, strlen($possible_letters)-1), 1);
$i++;
}
$font_size = $image_height * 0.75;
$image = @imagecreate($image_width, $image_height);
/* setting the background, text and noise colours here */
$background_color = imagecolorallocate($image, 255, 255, 255);
$arr_text_color = hexrgb($captcha_text_color);
$text_color = imagecolorallocate($image, $arr_text_color['red'],
$arr_text_color['green'], $arr_text_color['blue']);
$arr_noice_color = hexrgb($captcha_noice_color);
$image_noise_color = imagecolorallocate($image, $arr_noice_color['red'],
$arr_noice_color['green'], $arr_noice_color['blue']);
/* generating the dots randomly in background */
for( $i=0; $i<$random_dots; $i++ ) {
imagefilledellipse($image, mt_rand(0,$image_width),
mt_rand(0,$image_height), 2, 3, $image_noise_color);
}
/* generating lines randomly in background of image */
for( $i=0; $i<$random_lines; $i++ ) {
imageline($image, mt_rand(0,$image_width), mt_rand(0,$image_height),
mt_rand(0,$image_width), mt_rand(0,$image_height), $image_noise_color);
}
/* create a text box and add 6 letters code in it */
$textbox = imagettfbbox($font_size, 0, $font, $code);
$x = ($image_width - $textbox[4])/2;
$y = ($image_height - $textbox[5])/2;
imagettftext($image, $font_size, 0, $x, $y, $text_color, $font , $code);
/* Show captcha image in the page html page */
header('Content-Type: image/jpeg');// defining the image type to be shown in browser widow
imagejpeg($image);//showing the image
imagedestroy($image);//destroying the image instance
$_SESSION['6_letters_code'] = $code;
function hexrgb ($hexstr)
{
$int = hexdec($hexstr);
return array("red" => 0xFF & ($int >> 0x10),
"green" => 0xFF & ($int >> 0x8),
"blue" => 0xFF & $int);
}
?>
پاسخ به سوال
Sajad HP
5 سال پیش
0
0
فونتی که نوشته شده تو سورس رو از اینترنت دانلود کنید و کنار سورس قرار بدید و مقدار کپچا هم تو session ذخیره میشه طبق سورس
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .