1.不能随网页刷新而刷新的错误解决办法:
修改源代码 vendor/yiisoft/yii2/captcha/CaptchaValidator.php
/**
* @inheritdoc
*/publicfunctionclientValidateAttribute($object, $attribute, $view)
{$captcha = $this->createCaptchaAction();
$code = $captcha->getVerifyCode(true);
$hash = $captcha->generateValidationHash($this->caseSensitive ? $code : strtolower($code));
$options = [
'hash' => $hash,
'hashKey' => 'yiiCaptcha/' . $captcha->getUniqueId(),
'caseSensitive' => $this->caseSensitive,
'message' => Yii::$app->getI18n()->format($this->message, [
'attribute' => $object->getAttributeLabel($attribute),
], Yii::$app->language),
];
if ($this->skipOnEmpty) {
$options['skipOnEmpty'] = 1;
}
ValidationAsset::register($view);
return'yii.validation.captcha(value, messages, ' . json_encode($options, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE) . ');';
}
}
登录后复制
$code=$captcha->getVerifyCode(false); false改成true
登录后复制
另外出现
解决方法:
在 model中修改captchaAction的值
['verifyCode', 'captcha','message' =>'验证码错误','captchaAction'=>'login/captcha'],
登录后复制
在view中:
= $form->field($loginForm, 'verifyCode',['options'=>['class' => 'form-group']])->widget(Captcha::className(),[
'captchaAction' => '/login/captcha',
'imageOptions' => ['alt'=>'点击换图','title'=>'点击换图','style'=>'cursor:pointer'],
'options' => [
'placeholder' => '验证码',
'class' => 'form-control',
'style' => 'margin-top:10px;'
]
])->label(false); ?>
登录后复制
以上就介绍了 yii20验证码不能随网页一起刷新/出现site/captcha的错误,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。