Captcha官方
Captcha下载
http://www.captcha.ru/en/kcaptcha/
使用Captcha可以实现安全的验证码功能,Captcha提供了多种风格和样式的风格比如
使用方法超级简单
getImage.php
<?php
session_start();
include('kcaptcha.php');
$captcha = new KCAPTCHA();
?>index.php
Captcha会自动在Session中设置一个值来保存已经生成的验证码,要判断验证码是否正确,可以这样做:
//Captche会自动在Session中存储一个名为captcha_keystring的字符串
//只要验证一下提交的验证码是否和它相等就OK了
if(isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] == $_POST['keystring']){
echo "Correct";
}else{
echo "Wrong";
}那么,如何在Cakephp中使用Captcha呢?
介绍一下, Yoophi 在Cakephp通过组件方式使用Captcha的方法
将kcaptcha文件夹拷贝到vendors目录
在components中写一个新的组件
代码如下:
<?php
class CaptchaComponent extends Object {
var $Controller = null;
function startup(&$controller)
{
$this->Controller = $controller;
}
function render()
{
App::import('vendor', 'kcaptcha/kcaptcha');
$kcaptcha = new KCAPTCHA();
$this->Controller->Session->write('captcha', $kcaptcha->getKeyString());
exit;
}
}
?>然后,写一个生成验证码的方法,比如
class UsersController extends AppController {
var $name = 'Users';
var $components = array('Captcha');
function captcha() {
Configure::write('debug', '0');
$this->autoRender = false;
$this->Captcha->render();
}
}视图中的调用
echo $html->image(array('controller' => 'Users','action'=>'captcha'));验证提交的验证码是否正确
function _checkCaptcha($model) {
if ($this->Session->check('captcha')) {
$s_captcha = $this->Session->read('captcha');
if (!empty($this->data[$model]['captcha']) && $this->data[$model]['captcha'] == $s_captcha) {
return true;
}
}
return false;
}
总结
Captcha是一个免费的验证码文件,使用方法超级简单,但是安全性很高,配置方法简单,可以应用于多种开发程序框架
Captcha的配置文件为kcaptcha_config.php
通过它可以变更生成的图片大小,样式等内容,有兴趣的话自己可以看看!
