yii ccaptcha php模块,CCaptchaValidator

CCaptchaValidator

CCaptchaValidator validates that the attribute value is the same as the verification code displayed in the CAPTCHA.

CCaptchaValidator should be used together with CCaptchaAction.

公共属性

属性类型描述被定义在

boolean

whether the attribute value can be null or empty.

CCaptchaValidator

array

list of attributes to be validated.

array

list of built-in validators (name=>class)

boolean

whether the comparison is case sensitive.

CCaptchaValidator

boolean

whether to perform client-side validation.

array

list of scenarios that the validator should not be applied to.

string

the user-defined error message.

array

list of scenarios that the validator should be applied.

boolean

whether attributes listed with this validator should be considered safe for massive assignment.

boolean

whether this validation rule should be skipped when there is already a validation

error for the current attribute.

受保护的属性

属性类型描述被定义在

Returns the CAPTCHA action object.

CCaptchaValidator

公共方法

方法描述被定义在

Calls the named method which is not a class method.

Returns a property value, an event handler list or a behavior based on its name.

Checks if a property value is null.

Sets value of a component property.

Sets a component property to be null.

Returns a value indicating whether the validator applies to the specified scenario.

Returns the named behavior object.

Attaches a behavior to this component.

Attaches a list of behaviors to the component.

Attaches an event handler to an event.

Determines whether a property can be read.

Determines whether a property can be set.

Returns the JavaScript needed for performing client-side validation.

CCaptchaValidator

Creates a validator object.

Detaches a behavior from the component.

Detaches all behaviors from the component.

Detaches an existing event handler.

Disables an attached behavior.

Disables all behaviors attached to this component.

Enables an attached behavior.

Enables all behaviors attached to this component.

Evaluates a PHP expression or callback under the context of this component.

Returns the list of attached event handlers for an event.

Determines whether an event is defined.

Checks whether the named event has attached handlers.

Determines whether a property is defined.

Validates the specified object.

受保护的方法

方法描述被定义在

Adds an error about the specified attribute to the active record.

Returns the CAPTCHA action object.

CCaptchaValidator

Checks if the given value is empty.

Validates the attribute of the object.

CCaptchaValidator

属性详情

allowEmpty属性

public boolean $allowEmpty;

whether the attribute value can be null or empty.

Defaults to false, meaning the attribute is invalid if it is empty.

captchaAction属性

只读 (自版本 v1.1.7 可用)

Returns the CAPTCHA action object.

caseSensitive属性

public boolean $caseSensitive;

whether the comparison is case sensitive. Defaults to false.

方法详情

clientValidateAttribute()

方法

(自版本 v1.1.7 可用)

public string clientValidateAttribute(CModel $object, string $attribute)

$object

the data object being validated

$attribute

string

the name of the attribute to be validated.

{return}

string

the client-side validation script.

源码: framework/validators/CCaptchaValidator.php#91 (

public functionclientValidateAttribute($object,$attribute)

{$captcha=$this->getCaptchaAction();$message=$this->message!==null?$this->message:Yii::t('yii','The verification code is incorrect.');$message=strtr($message, array('{attribute}'=>$object->getAttributeLabel($attribute),

));$code=$captcha->getVerifyCode(false);$hash=$captcha->generateValidationHash($this->caseSensitive?$code:strtolower($code));$js="

var hash = jQuery('body').data('{$this->captchaAction}.hash');

if (hash == null)

hash =$hash;

else

hash = hash[".($this->caseSensitive?0:1)."];

for(var i=value.length-1, h=0; i >= 0; --i) h+=value.".($this->caseSensitive?'':'toLowerCase().')."charCodeAt(i);

if(h != hash) {

messages.push(".CJSON::encode($message).");

}

";

if($this->allowEmpty)

{$js="

if(jQuery.trim(value)!='') {$js}

";

}

return$js;

}

Returns the JavaScript needed for performing client-side validation.

getCaptchaAction()

方法

(自版本 v1.1.7 可用)

protected CCaptchaAction getCaptchaAction()

{return}

the action object

源码: framework/validators/CCaptchaValidator.php#64 (

protected functiongetCaptchaAction()

{

if(($captcha=Yii::app()->getController()->createAction($this->captchaAction))===null)

{

if(strpos($this->captchaAction,'/')!==false)// contains controller or module{

if(($ca=Yii::app()->createController($this->captchaAction))!==null)

{

list($controller,$actionID)=$ca;$captcha=$controller->createAction($actionID);

}

}

if($captcha===null)

throw newCException(Yii::t('yii','CCaptchaValidator.action "{id}" is invalid. Unable to find such an action in the current controller.',

array('{id}'=>$this->captchaAction)));

}

return$captcha;

}

Returns the CAPTCHA action object.

validateAttribute()

方法

protected void validateAttribute(CModel $object, string $attribute)

$object

the object being validated

$attribute

string

the attribute being validated

源码: framework/validators/CCaptchaValidator.php#44 (

protected functionvalidateAttribute($object,$attribute)

{$value=$object->$attribute;

if($this->allowEmpty&&$this->isEmpty($value))

return;$captcha=$this->getCaptchaAction();// reason of array checking is explained here: https://github.com/yiisoft/yii/issues/1955if(is_array($value) || !$captcha->validate($value,$this->caseSensitive))

{$message=$this->message!==null?$this->message:Yii::t('yii','The verification code is incorrect.');$this->addError($object,$attribute,$message);

}

}

Validates the attribute of the object.

If there is any error, the error message is added to the object.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值