طراحی سایت اصفهان | سئو سایت اصفهان |طراحی سایت در اصفهان

031- 344 500 60

طراحی سایت در اصفهان, سئو سایت اصفهان, طراحی سایت فروشگاهی , شرکت طراحی سایت اصفهان, طراحی حرفه ای سایت اصفهان, بهینه سازی سایت , بازاریابی و تبلیغات اینترنتی

صفحه نخست » بلاگ » php » ایجاد کد کپچا در php

ایجاد کد کپچا در php

۱۶ام بهمن ۱۳۹۶
شیما قطره سامانی
63

آموزش ایجاد کد کپچا در php

معمولا شما در بیشتر سایت هایی که دارای فرم های اینترنتی هستند شاهد کدهای کپچا (captcha)تصویر امنیتی – هستید. بیشتر این کدها از کلمات به هم ریخته ای تشکیل شده است که شما باید شکل صحیح آن را وارد نموده تا بتوانید  از عهده ی این تست بر آیید. کد کپچا مخفف عبارت (Completely Automated Public Turing test to tell Computers and Humans Apart) می باشد ؛ یعنی تست کاملا خودکار برای تشخیص انسان از رایانه. هدف از ایجاد کد کپچا در php این است که کاربران از عهده ی تست کد کپچا بر می آیند ولی رایانه ها به تنهایی نمی توانند از عهدی این آزمون ( تصویر امنینی کد کپچا ) برآیند. لذا در ادامه ی بحث می پردازیم به کد ایجاد تصویر امنیتی ساده (کپچا) در php ، تا بتوانید به راحتی برای فرم های ورود ، عضویت ، نظرات و هر آن چه که برای امنیت سایت نیاز به ایجاد کد کپچا در php دارید ، آن را وارد نمایید. با وب یار همرا باشید تا نحوه ی ایجاد کد کپچا در php را به شما نشان دهیم و از آن لذت ببرید.

 

کد ایجاد تصویر امنیتی ساده (کپچا) در php

کد ایجاد تصویر امنیتی ساده

 

کاربردهای کد کپچا

 

  • تصویر امنیتی برای جلوگیری از اسپم در بلاگها و سایر وب‌گاه‌ها
  • تصویر امنیتی برای جلوگیری از نفوذ ربات ها به رایانه ها
  • تصویر امنیتی برای جلوگیری از نفوذ هکرها به رایانه ها

 

مراحل ساخت کد تصویر امنیتی (کپچا) در php

 

ابتدا باید دو فایل به نام های index.php و simplephpcaptch.php   ایجاد کنید. (البته توجه نمایید که دو فایل simplephpcaptch.php  و index.php کافی نبوده و نیازمند فونت و لیست لغات است که در پایین صفحه ضمیمه شده اند.)

 

فایل index.php

بعد از ایجاد فایلindex.php قطعه کدهای زیر را داخل آن قرار دهید.

 

کد html
<img height="70" width="200"  src="simplephpcaptcha.php"/>

<form action="" method="post">

            <input type="text" name="captcha" />

            <input type="submit" name="submit" />

</form>

 

خط اول یک image  ایجاد می کند که این تصویر در فایل simplephpcaptch.php ایجاد می شود و در صفحه ی index.php فراخوانی و نهایتا به نمایش در می آید. در خط بعدی یک فرم ایجاد می شود که کاربر باید کد کپچا ( تصویر امنیتی ) به نمایش در آمده را در این قسمت وارد نماید.

کد ایجاد تصویر امنیتی ساده (کپچا) در php

آموزش ایجاد تصویر امنیتی ساده (کپچا) در php

کد php

کد زیر حروفی که کاربر وارد کرده را با کپچای اصلی مقایسه می کند و درصورت درست یا غلط بودن پیغام متناسب با آن را به کاربر نشان می دهد.

 

<?php
session_start();
if(isset($_POST['submit'])){
            if($_SESSION['captcha'] == $_POST['captcha']){
                        echo "Captcha Is Correct<br>";
            }else{
                        echo "Captcha Isn't Correct<br>";
            }
}
?>

 

فایل simplephpcaptch.php

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

 

$fp = fopen('xsixlw.txt',"r");
 $count = filesize('xsixlw.txt')/6 - 1;
 $pos = 6*rand(0,$count);
 fseek($fp,$pos);
 $captcha = warpedCaptcha(trim(fread($fp,6)));
 fclose($fp);

 

در قطعه کد بالا از فایل xsixlw.txt  برای استفاده از حروف به صورت رندم استفاده شده است.

به طور خلاصه قطعه کد بالا به این صورت عمل می کند فایل txt  را باز می کند و به صورت رندم یک قسمت از فایل را انتخاب می کند و با استفاده از تابع warpedCaptcha شش حرف آن را می خواند و کد کپچا را ایجاد می کند.

 

تابع warpedCaptcha
   if (5 > rand(0,6)) return $text;
   $ltrs = array('b'=>'b','c'=>'c','d'=>'d','f'=>'f','g'=>'g','h'=>'h','j'=>'j',

               'k'=>'k','l'=>'l','m'=>'m','n'=>'n','p'=>'p','q'=>'q','r'=>'r',

                                       's'=>'s','t'=>'t','v'=>'v','w'=>'w','x'=>'x','z'=>'z');

  $vkeys = $vltrs = explode(',','a,e,i,o,u,y');
  shuffle($vkeys);
  $vowels = array();
  foreach($vkeys as $ndx=>$vkey) $vowels[$vkey] = $vltrs[$ndx];
  $ltrs = array_merge($ltrs,$vowels);
  $text = str_split($text);
  $captcha = '';
  foreach($text as $txt) $captcha .= $ltrs[$txt];
  return $captcha;
 }

 

در قطعه کد زیر کد کپچای ارسالی توسط کاربر به این صفحه ارسال می شود.

 

session_start();
 $_SESSION['captcha'] = $captcha;
session_write_close();

 

بعد از ایجاد کد کپچا باید آن را در تصویر قرار بدهیم و رنگ و شکل آن را تغییر دهیم.

 

$im = imagecreatetruecolor(200,70);
 $black = imagecolorallocate($im,0,0,0);
 imagecolortransparent($im,$black);

 

در کد بالا یک تصویر 200px *70px  ایجاد می کند و رنگ پشت زمینه آن را ابتدا سیاه می نماید و سپس پشت زمینه را حذف می کند تا فقط کد کپچا یک border سیاه داشته باشد. بعد از آن نوبت به رنگ آن می رسد ابتدا با استفاده از کد زیر هر تعداد رنگ به دلخواه می توانید ایجاد کنید که هربار یک رنگ به طور رندم انتخاب می شود.

switch(rand(0,4))
 {
  case 0:$color = imagecolorallocate($im,34,155,91);break;
  case 1:$color = imagecolorallocate($im,233,26,74);break;
  case 2:$color = imagecolorallocate($im,233,26,195);break;
  case 3:$color = imagecolorallocate($im,244,178,19);break;
  case 4:$color = imagecolorallocate($im,53,125,199);break;
 }

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

 

$x = 20;$y = 47
 for ($i=0;$i<6;$i++)

  $angle = rand(-8,8) + rand(0,9)/10;
  $fontsize = rand(22,32);
  $letter = substr($captcha,$i,1);
  $coords = imagettftext($im,$fontsize,$angle,$x,$y,$color,'oldsans.ttf',$letter);
  $x += ($coords[2]-$x) + 1;
 }

 

در خط اول موقعیت نمایش کد کپچا را مشخص می کند و در قسمت for یک حرف انتخاب می شود و به ترتیب زاویه و سایز آن  مشخص می شود.

به تابع imagettftext() به ترتیب پشت زمینه ، سایز، زاویه ،موقعیت ، رنگ ، نوع فونت ، حرف مورد نظر داده می شود و حرف مورد نظر به نمایش در می آید.

حال فایل های مورد نیاز را می توانید از این قسمت دانلود نمایید.

 

دانلود کد ایجاد تصویر امنیتی ساده (کپچا) در php

 

اما در هر صورت اگر دسترسی به کدهای سایت خود ندارید و یا از سیستم مدیریت محتوا وردپرس استفاده می نمایید و وقت برای کد نویسی ندارید ، پیشنهاد می کنیم که از پلاگین کپچا وردپرس (captcha) استفاده نمایید.

 

نتیجه گیری

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

درباره نویسنده :
شیما قطره سامانی

عاشق طراحی سایت هستم. جدی ، مصمم و پر تلاش.

مطالب مرتبط

آموزش آپلود فایل در php

آپلود فایل در php معمولا در بعضی از سایت ها لازم می شود که فرمی را در سایت تعبیه نموده که توسط آن کاربران بتوانند فایل های مورد نظر خود را در سایت آپلود نمایند ( از جمله آپلود فایل رزومه ، عکس و…). حال قبل از آموزش آپلود فایل در php و کدنویسی فرم […]

captcha login wordpress

افزودن کد امنیتی برای فرم های سایت Captcha

اگر می خواهید سایت خود را در برابر حمله اسپمر ها و ربات ها ایمن کنید امروز با افزونه ای که به شما معرفی می کنیم با ما باشید. افزونه کپچا وردپرس  CAPTCHA افزودن کد امنیتی برای فرم های سایت Captcha افزونه کپچا وردپرس (Captcha) یک راه حل بسیار ایده آل برای ضدگلوله کردن وردپرس […]

ارسال دیدگاه

*    

*    

ارتباط با تیم پشتیبانی وب یار

تمام پشتیبان ها در حال پاسخ به مشتریان هستند. لطفا درخواست خود را ارسال نمایید تا در کوتاه ترین زمان ممکن با شما تماس بگیریم.

چه کمکی از تیم وب یار بر می آید ، با ما در میان بگذارید

برای گفتگو کلید ENTER را بفشارید