Awesome
VisualCaptcha-Cakephp-Plugin
Cakephp 2.x Plugin for VisualCaptcha https://github.com/emotionLoop/visualCaptcha
Installation
- Clone into
app/Plugin
directory and rename it toVisualCaptcha
- Clone the php package
https://github.com/emotionLoop/visualCaptcha-packagist
intoapp/Vendor
directory and rename it tovisual_captcha
- Add the component in the controller like
public $components = array('VisualCaptcha.VisualCaptcha');
and load from bootstrap:CakePlugin::load('VisualCaptcha');
. - Js options can be taken from here,
https://github.com/emotionLoop/visualCaptcha-frontend-jquery
.
E.g. lets say we want to set up the actions in UsersController. In View add this:
var WEB_ROOT = '<?php echo $this->webroot; ?>';
$(document).ready(function() {
$('#captcha').visualCaptcha({
imgPath: WEB_ROOT + 'visual_captcha/img/', // visual_captcha - according to Plugin's name
captcha: {
numberOfImages: 5,
url: WEB_ROOT,
routes: {
image : 'users/captcha_image',
audio : 'users/captcha_audio',
start : 'users/captcha'
}
}
});
});
In users controller we should have these actions
public function captcha() {
$this->autoRender = false;
echo $this->VisualCaptcha->generate();
}
public function captcha_image($index) {
$this->autoRender = false;
return $this->VisualCaptcha->image($index);
}
public function captcha_audio() {
$this->autoRender = false;
echo $this->VisualCaptcha->audio();
}
For checking the validity just use $this->VisualCaptcha->check()
. It will automatically check the $this->request->data
for the captcha's key => value pair.
License
MIT