1

我正在尝试在一些表单上取消 recapthca 验证,但没有任何运气。我总是从我的“recaptcha_response_field”中收到一个错误,指出“您输入的单词不正确。请重试。”

我的大部分表格都需要recaptcha,但我想跳过一些。我试过“MultivalidatableBehavior” http://bakery.cakephp.org/articles/dardosordi/2008/07/29/multivalidatablebehavior-using-many-validation-rulesets-per-model但我也无法让它工作。

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

https://github.com/tbsmcd/recaptcha_plugin

谢谢,巴特

4

1 回答 1

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.',
),
);
}
}
于 2012-05-14T21:29:55.023 回答