Uzantılarda captcha kullanma

Bir uzantı geliştirirken, genellikle kayıtlı olmayan kullanıcılara bazı formlar görüntülemek gerekir: bir geri bildirim formu, "arama siparişi", desteğe soru sorma vb. Bu tür formlar spam botları tarafından doldurulup sunucuya gönderilebilir ve böylece veritabanı çöple doldurulabilir. Captcha, bu tür botlara karşı korunmanın çok etkili bir yoludur.

Kayıtlı kullanıcıların bir captcha doldurmasını istemek mantıklı değildir çünkü botlar siteye giriş yapamaz ve tüm formları "spam" edemez. Bu nedenle, captcha'yı yalnızca misafirler tarafından doldurulabilen formlarda görüntülemeniz gerekir.

Uzantılarınızda captcha kullanmak oldukça basittir. 

Herhangi bir formda captcha görüntülemek için:

Uzantınızın denetleyicisine böyle bir kod ekleyin:

// Initialize the template engine
$t = new XTemplate($pathToTemlateFile);

// ... some code of your extension ...

// Check if user is not logged in and at least one captcha is installed on the site:
if (Cot::$usr['id'] === 0 && !empty($cot_captcha)) {
	// Output captcha to the template
	$t->assign(cot_generateCaptchaTags(null, 'rverify', 'FEEDBACK_FORM_'));
}

Captcha çıktısı için şablona etiketler ekleyin:

<!-- IF {FEEDBACK_FORM_VERIFY_IMG} -->
<div>
	{FEEDBACK_FORM_VERIFY_IMG} {FEEDBACK_FORM_VERIFY_INPUT}
</div>	
<!-- ENDIF -->

Ve son olarak, kullanıcı tarafından gönderilen verileri işlerken, captcha'nın doğru doldurulup doldurulmadığını kontrol etmeniz gerekir:

if (Cot::$usr['id'] === 0 && !empty($cot_captcha)) {
	$rverify = cot_import('rverify', 'P', 'TXT');
	if (!cot_captcha_validate($rverify)) {
		// The captcha is not filled correctly
		cot_error('captcha_verification_failed', 'rverify');
	}
}


Henüz yorum yapılmamış
Yalnızca kayıtlı kullanıcılar yorum yapabilir