cakephp recapthca插件未设置

时间:2012-05-14 20:56:16

标签: validation cakephp recaptcha

我试图在几种形式上取消重新验证,但没有任何运气。我的“recaptcha_response_field”总是收到一条错误,指出“你没有正确输入这些字词。请再试一次。”

我需要在大部分表格上重新接收,但我想跳过一些。我曾尝试过“MultivalidatableBehavior”http://bakery.cakephp.org/articles/dardosordi/2008/07/29/multivalidatablebehavior-using-many-validation-rulesets-per-model,但我无法让它发挥作用。

关于我如何才能让它发挥作用的任何想法?

https://github.com/tbsmcd/recaptcha_plugin

谢谢, 巴特

1 个答案:

答案 0 :(得分:2)

您必须编辑插件行为才能执行此操作...这是最简单的方法,您也可以在行为中执行此操作,但这种方式简单易行。

//Your Controller
function add(){
$this->{$this->modelClass}->reCaptcha = true;
if(!empty($this->data)){
$this->{$this->modelClass}->save($this->data);
}
}

//Edit Recaptcha ValidateBehavior
function beforeValidate(&$model) {
if(isset($model->reCaptcha) && $model->reCaptcha){
$model->validate['recaptcha_response_field'] = array(
'checkRecaptcha' => array(
'rule' => array('checkRecaptcha', 'recaptcha_challenge_field'),
'required' => true,
'message' => 'You did not enter the words correctly. Please try again.',
),
);
}
}