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

با این روش می توان مطمئن شد که یک عامل انسانی اقدام به پرکردن فرم کرده است نه برنامه کامپیوتری (ربات) .

در این قسمت یک کلاس برای ساخت کد captcha برای شما قرار داده شده و روش استفاده از آن با یک نمونه فرم ورود کاربر توضیح داده شده است.

آموزش استفاده از کپچا در php

در فایل kcaptcha_config.php تنظیمات captcha  قرار داده شده است.

فایل  kcaptchag.php دارای یک کلاس به نام KCAPTCHA است که بخش اصلی پیاده سازی captcha است.

با اجرای فایل index.php که دارای محتوای زیر است ، یک تصویر captcha  نشان داده خواهد شد. در این فایل ابتدا فایل kcaptcha.php  ضمیمه شده و یک شیء از نوع کلاس KCAPTCHA  تعریف شده و تصویر captcha تولید و نمایش داده شده است.

فایل index.php:

<?php<?php
include('kcaptcha.php');
if(isset($_REQUEST[session_name()])){ session_start();}
$captcha = new KCAPTCHA();
if($_REQUEST[session_name()]){ $_SESSION['captcha_keystring'] = $captcha->getKeyString();}
?>

فایل login.php  یک فرم لاگین کاربر دارای captcha را بصورت زیر طراحی می کند:

فرم لاگین کاربر با captcha

و در صورتی که کاربر در کادر مربوطه متن بهم ریخته را درست وارد کند، پیغام success و در غیر اینصورت پیغام  wrong را نمایش خواهد داد. کد برنامه login.php بصورت زیر است. شما می توانید با تغییر دستورات برنامه، آنرا برای برنامه خودتان استفاده کنید.

<?php
session_start(); ?>
<?php
if(count($_POST)>0){
if(isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] ==  $_POST['keystring']){
echo "Correct";
}else{
echo "Wrong";
}
}
unset($_SESSION['captcha_keystring']);
?>
<form action="./login.php" method="post">    <table dir="rtl" border="1" style="font-family:tahoma; font-size:11px;" >
<tr>
<td valign="top">
<table style="font-family:tahoma; font-size:11px;">
<tr>
<td> نام کاربری:</td> <td><input name="user" type="text" /> </td>
</tr>
<tr>
<td> کلمه عبور:</td> <td><input name="pass" type="password" /> </td>
</tr>
</table>
<td align="center"> <p><img src="index.php?<?php echo session_name()?>=<?php echo session_id()?>">     <br >متن فوق را تایپ کنید<br>
<input type="text" name="keystring" size="10"></p>
</td>
</tr>
<tr>
<td colspan="2" align="center"> <input type="submit" value=" ورود به سیستم">
</td>
</tr>
</table>
</form>

نمایش قابل چاپ