ساخت کد امنیتی Captcha با استفاده از php

خانه » آموزش طراحی سایت » ساخت کد امنیتی Captcha با استفاده از php

ساخت کد امنیتی Captcha با استفاده از php

با سلام و خسته نباشید به همراهان همیشگی دهکده وردپرس. در این آموزش قصد داریم نحوه ساخت یک کد امنیتی Captcha در php را برای شما کاربران گرامی دهکده وردپرس آموزش دهیم .همراه ما باشید.

 

قبل از هر چیزی باید بدانیم کد کپچا (Captcha) چیست و چه کاربردی دارد و در چه مواقعی استفاده میشود؟؟ در ادامه به این مبحث میپردازیم.

ساخت کد امنیتی Captcha با استفاده از php

ساخت کد امنیتی Captcha با استفاده از php

کپچا چیست؟

در فرم های اینترنتی تصاویری را می بینیم که داخل آن اعداد و حروف به صورت نامرتب دیده می شود که نوعی تست است. نام این تست‌ها Completely Automated Public Turing test to tell Computers and Humans Apart) CAPTCHA) است که هدف از طراحی آن، این است که مشخص شود كاربر در حقیقت انسان است يا رایانه . احتمالاً این نوع از تست‌ها را در بسیاری از سایت‌ها مشاهده کرده‌اید. متداول‌ترین مدل این تست‌ها شامل تعدادی حروف به‌هم ریخته و درهم می‌شود. به همین منظور لازم است شما حروف صحیح شکل مقابل‌تان را تشخیص دهيد و در قسمت مربوط به آن تایپ کنید. چنانچه حروف وارد شده دقیقاً مشابه همان حروف بود، شما به آسانی از عهده انجام این تست برآمده‌اید.

 

کاربرد کپچا

کپچا کاربرد زیادی دارد ولی بیشتر برای افزایش امنیت استفاده می شود :

جلوگیری از ارسال نظرات اسپم در سایت و وبلاگ

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

در عضویت سایت

برای جلوگیری از ثبت نام ربات ها در سایت از کپچا استفاده می شود ، چون ربات های اینترنتی می توانند در عرض چند ساعت چندین اکانت ایجاد کنند . هم چنین در گوگل و یاهو برای جلوگیری از ایجاد ایمیل توسط ربات ها از کپچا استفاده می شود تا فقط انسان ها قادر به ثبت نام نهایی فرم باشند .

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

اگر هکری با هر راهی نام کاربری شما را به دست آورد و با آزمون و خطا می تواند پسورد شما را نیز برای ورود به سایت به دست آورد . برای جلوگیری از این کار از کپچا استفاده می کنیم که اگر مثلاً رمز عبور یا نام کاربری بیش از 5 با زده شد IP کاربر را مسدود کند .

 

ساخت کد امنیتی Captcha با استفاده از php

مرحله 1 : ساخت یک صفحه HTML

کد زیر شامل یک ورودی اسم ، ایمیل و کپچا با دکمه submit است . این کد ها را در فایل index.php ذخیره میکنیم.

<form action="" method="post">
<input name="name" type="text" />
<input name="email" type="email" />
<img src="captcha.php" /><input name="captcha" type="text" />
<input type="submit" value="submit" />
</form>

 

مرحله 2 : جهت تولید تصویر کپچا :

یک فایل captcha.php ایجاد و داخل بلاک php تابع session_start() را فراخوانی می کنیم.بعد با تابع rand یک مقدار جدید ایجاد و داخل متغییر session ذخیره میکنیم .

session_start();
$captcha_num = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz';
$captcha_num = substr(str_shuffle($captcha_num), 0, 6);
$_SESSION["code"] = $captcha_num;

تعریف اندازه تصویر کپچا و همچنین اندازه فونت

$font_size = 30;
$img_width = 70;
$img_height = 40;

تعریف content type فایل captcha.php به صورت عکس

 

header('Content-type: image/jpeg');

ساخت کپچا در php با اندازه و رنگ پس زمینه دلخواه

$image = imagecreate($img_width, $img_height); // create background image with dimensions
imagecolorallocate($image, 255, 255, 255); // set background color

تعیین رنگ متن کپچا به صورت rgb

$text_color = imagecolorallocate($image, 0, 0, 0); // set captcha text color

ساخت کپچا از رشته تولید شده و گرفتن خروجی عکس در مروگر با فونت دلخواه

imagettftext($image, $font_size, 0, 15, 30, $text_color, 'font.ttf', $captcha_num);
imagejpeg($image);

 

مرحله 3 : نمایش کد امنیتی (captcha) در فرم

فیلد های مربوط به کپچا را اضافه کردیم . برای نمایش کپچا از تگ img و قرار دادن مقدار captcha.php در مشخصه src استفاده می کنیم.

<form action="" method="post">
<input name="name" type="text" />
<input name="email" type="email" />
<img src="captcha.php" /><input name="captcha" type="text" />
<input type="submit" value="submit" />
</form>

مرحله 4: بررسی کپچا بعد از ارسال فرم

حالا باید کد کپچا ارسال شده را چک کنیم . اگر مقدار ارسال شده با مقداری که در session ذخیره شده یکسان بود مقدار true و اگر اشتباه بود مقدار false را داخل شرطمان بر میگردانیم

session_start();
if(isset($_POST) &amp; !empty($_POST)){
if($_POST['captcha'] == $_SESSION['code']){
echo "correct captcha";
}else{
echo "Invalid captcha";
}
}

امیدواریم  که از مطلب آموزشی ساخت کد امنیتی Captcha با استفاده از php استفاده لازم را برده باشید با مقاله های بعدی دهکده وردپرس همراه ما باشید.

ناشر محصول

farzaneh sabry

farzaneh sabry

سلام.من یکی از اعضای تیم دهکده وردپرس هستم.

مطالب جدید

جلوگیری از ارسال نظرات اسپم در وردپرس

مدیریت سفارشات مشتریان در ووکامرس

مدیریت سفارشات مشتریان در ووکامرس

انتقال مستقیم به صفحه تسویه حساب در ووکامرس

انتقال مستقیم به صفحه تسویه حساب در ووکامرس

کاهش رتبه الکسا در وردپرس

کاهش رتبه الکسا در وردپرس

ساخت جدول قیمت گذاری در وردپرس

ساخت جدول قیمت گذاری در وردپرس

افزونه meta slider

افزونه meta slider

2 نظر! شما نظری ندارید؟!

*

code