Securimage چیست؟

secureimage یک کتابخانه open source برای ساختن کپتچا هست که روش کار با اون بسیار ساده هست.

برای استفاده از این باید افزونه GD روس سرور شما نصب باشه که خوشبختانه این افزونه در اکثر هاست ها فعال هست.

 

روش استفاده

اول باید این کتابخانه رو دانلود کنید و فایل securimage.php رو اینکلود کنید، بعد یک شی از Securimage بسازید.

include_once './securimage/securimage.php';

$securimage = new Securimage();

برای ساختن تصویر باید فایل securimage_show.php در تگ img فراخوانی کنید

<img id="captcha" src="/securimage/securimage_show.php" alt="CAPTCHA">

 

 

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

<input type="text" name="captcha_code" size="10" maxlength="6">

برای این که قابلیت بارگذاری تصویر جدید هم داشته باشه این کد رو بعد از تگ input بالا قرار میدیم.

<a href="#" 
onclick="document.getElementById('captcha').src = '/securimage/securimage_show.php?' + Math.random(); return false">[ بارگذاری تصویر جدید ]</a>

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

<?php session_start(); ?>

برای پردازش کپتچا هم باید از کد زیر استفاده بشه.

متد check از کتابخانه بررسی میکنه اگر پارامتر ورودیش برای مقدار کپتچا صحیح باشه مقدار true در غیر اینصورت false برمیگردونه.

if ($securimage->check($_POST['captcha_code']) == false) {
 //captcha is wrong
}else{
//captcha is correct
}

 

در نهایت هم یک نمونه کد کامل.

<?php session_start() ?>
<?php include_once "secureimage-captcha/securimage.php"; ?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>secureimage captcha</title>
</head>
<body>
<?php
$secureimage = new Securimage();
if(isset($_POST['captcha_code']) ){
$captcha=empty($_POST['captcha_code']) ? "" : $_POST['captcha_code'];
if($secureimage->check($captcha)==false){
//captcha is false
echo "<p>کد وارد شده صحیح نیست</p>";
}else{
echo "<p>کد به درستی وارد شده</p>";
}
}
?>
<form action="" method="POST">
<div style="width:300px;margin:0px auto">
<?php
$options = array('disable_flash_fallback' => true);
echo Securimage::getCaptchaHtml($options);
?>
</div>
<input type="submit" value="ارسال">
</form>
</body>
</html>

با استفاده از Securimage::getCaptchaHtml خود کتابخانه یک کپتچای خودکار با قابلیت رفرش کپتچا و تلفظ حروف کپتجا ایجاد میکنه.

قسمت disable_flash_fallback' => true هم برای اینه که اگر مرورگر(مرورگر های دوران باستان) از صدا پشتیبانی نکنه دکمه پخش صدا نمایش داده نمیشه.

 

سایت اصلی securimage

 

امیدوارم مفید بوده باشه.