آموزش ساخت Captcha در php

 captcha

کپچا یک قابلیت امنیتی و روند ارزیابی است که برای جلوگیری از برخی حمله‌های خرابکارانهٔ ربات‌های اینترنتی به‌کار می‌رود. در واقع با captcha می توان مشخص کرد که مراجعه کنندگان به یک وب‌گاه و یا سایر خدمات آنلاین انسان هستند یا کامپیوتر. بدین منظور برنامهٔ کپچا آزمون‌هایی را تولید می‌کند که تنها انسان‌ها قادر به پاسخ‌گویی به آنها باشند. چون کامپیوترها و نرم‌افزارهای فعلی احتمالاً نمی‌توانند پاسخ درستی به این آزمون بدهند، هر کاربری که آنرا درست حل کند، انسان فرض می‌شود. کپچا می تواند یک تصویر شامل متن ، یک متن ساده ، یک سوال ریاضی و … باشد . ما در این آموزش قصد داریم تا برای وب سایت خود یک کپچا ایجاد کنیم .

برای این کار از زبان برنامه نویسی php  کمک می گیریم. ابتدا یک متن تصادفی ایجاد می کنیم . این متن حاوی حرف و عدد می باشد .

$num = substr(str_shuffle(str_repeat(“0123456789abcdefghijklmnopqrstuvwxyz”, 5)), 0, 5);   // تولید یک متن تصادفی

 سپس یک تصویر در اندازه ۵۰×۱۳۵ به کمک php می سازیم  . پس  از آن به کمک تابع imagecolorallocate یک رنگ ایجاد می کنیم .

به کمک تابع imagestring می توان یک متن تولید کرد و متن را به تصویر ایجاد شده چسباند . پارامتر اول آن تصویر ساخته شده ، پارامتر دوم آن فونت متن می باشد و اگر می خواهید از فونت پیش فرض استفاده کنید کافی است فقط اندازه فونت را که از بین اعداد یک تا پنج می باشد قرار دهید ، پارامتر سوم و چهارم بیانگر نقاط شروع نوشته یا همان نقاط x,y  در صفحه می باشند . پارامتر بعدی متن تولید شده و پارمتر بعدی رنگ نوشته می باشد . تا این جای کار تصویر و متن آماده است .

حال می خواهیم بر روی نوشته های ما خطی نیز قرار بگیرد . برای این کار از تابع imageline کمک می گیریم .پارامتر اول تصویر مورد نظر بوده و پارامتر دوم و سوم این تابع نشان دهنده نقاط x,y  خط و پارامترهای چهارم و پنجم بیانگر نقاط x,y  پایان خط می باشند . پارامتر ششم هم رنگ خط می باشد .

حال به کمک تابع imagejpeg تصویر ایجاد می شود و آماده نمایش است . پارامتر اول این تابع تصویر مورد نظر ، پارمتر دوم آن محلی برای ذخیره تصویر که می توانید آن را null  قرار دهید و پارامتر آخری بیانگر کیفیت تصویر می باشد .

پس از این مراحل کافی است تصویر ایجاد شده را print_r  یا نمایش دهیم .

در آخر تصویر ایجاد شده را حذف می کنیم .

$im = imagecreate(150,30);     // ساخت یک تصویر
$background_color = imagecolorallocate($im, 200,100,5);   // اختصاص رنگی برای پس زمینه تصویر
$color = imagecolorallocate($im, 200, 200, 50);

imagestring( $im,5,49,5,$num,$color );    // ساخت نوشته
imageline($im, 50, 15, 100, 10, $color);   // ساخت خط

ob_start();
imagejpeg($im,null,200);
printf(“<img src=’data:image/jpeg;base64,%s’ />”,
base64_encode(ob_get_clean()));
imagedestroy($im);

 برای استفاده از کپچای ایجاد شده فقط کافی است آن متن تولید شده در Session  تنظیم کنید و در هنگام ورود به سایت یا ارسال دیدگاه آن session  تنظیم شده را بررسی کنید .

One Comment on “آموزش ساخت Captcha در php”

  1. I’m truly enjoying the design and layout of your blog. It’s a very easy on the eyes which makes it much more enjoyable for me to come here and visit more often. Did
    you hire out a developer to create your theme? Fantastic work!

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *