当前位置:Gxlcms > PHP教程 > yii20验证码不能随网页一起刷新/出现site/captcha的错误

yii20验证码不能随网页一起刷新/出现site/captcha的错误

时间:2021-07-01 10:21:17 帮助过:19人阅读

1.不能随网页刷新而刷新的错误解决办法:
修改源代码 vendor/yiisoft/yii2/captcha/CaptchaValidator.php

  1. <code><span>/**
  2. *<span> @inheritdoc</span>
  3. */</span><span>public</span><span><span>function</span><span>clientValidateAttribute</span><span>(<span>$object</span>, <span>$attribute</span>, <span>$view</span>)</span>
  4. {</span><span>$captcha</span> = <span>$this</span>->createCaptchaAction();
  5. <span>$code</span> = <span>$captcha</span>->getVerifyCode(<span>true</span>);
  6. <span>$hash</span> = <span>$captcha</span>->generateValidationHash(<span>$this</span>->caseSensitive ? <span>$code</span> : strtolower(<span>$code</span>));
  7. <span>$options</span> = [
  8. <span>'hash'</span> => <span>$hash</span>,
  9. <span>'hashKey'</span> => <span>'yiiCaptcha/'</span> . <span>$captcha</span>->getUniqueId(),
  10. <span>'caseSensitive'</span> => <span>$this</span>->caseSensitive,
  11. <span>'message'</span> => Yii::<span>$app</span>->getI18n()->format(<span>$this</span>->message, [
  12. <span>'attribute'</span> => <span>$object</span>->getAttributeLabel(<span>$attribute</span>),
  13. ], Yii::<span>$app</span>->language),
  14. ];
  15. <span>if</span> (<span>$this</span>->skipOnEmpty) {
  16. <span>$options</span>[<span>'skipOnEmpty'</span>] = <span>1</span>;
  17. }
  18. ValidationAsset::register(<span>$view</span>);
  19. <span>return</span><span>'yii.validation.captcha(value, messages, '</span> . json_encode(<span>$options</span>, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE) . <span>');'</span>;
  20. }
  21. }</code>
  1. <code><span>$code</span><span>=</span><span>$captcha</span><span>-></span>getVerifyCode(<span>false</span>); <span>false</span>改成<span>true</span></code>

另外出现
 yii20验证码不能随网页一起刷新/出现site/captcha的错误
解决方法:
在 model中修改captchaAction的值

  1. <code> [<span>'verifyCode'</span>, <span>'captcha'</span>,<span>'message'</span> =><span>'验证码错误'</span>,<span>'captchaAction'</span>=><span>'login/captcha'</span>],</code>

在view中:

  1. <code><span><span><!--?</span-->= <span>$form</span>->field(<span>$loginForm</span>, <span>'verifyCode'</span>,[<span>'options'</span>=>[<span>'class'</span> => <span>'form-group'</span>]])->widget(Captcha::className(),[
  2. <span>'captchaAction'</span> => <span>'/login/captcha'</span>,
  3. <span>'imageOptions'</span> => [<span>'alt'</span>=><span>'点击换图'</span>,<span>'title'</span>=><span>'点击换图'</span>,<span>'style'</span>=><span>'cursor:pointer'</span>],
  4. <span>'options'</span> => [
  5. <span>'placeholder'</span> => <span>'验证码'</span>,
  6. <span>'class'</span> => <span>'form-control'</span>,
  7. <span>'style'</span> => <span>'margin-top:10px;'</span>
  8. ]
  9. ])->label(<span>false</span>); <span>?></span></span></span></code>

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('
  • ').text(i)); }; $numbering.fadeIn(1700); }); });

    以上就介绍了 yii20验证码不能随网页一起刷新/出现site/captcha的错误,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

  • 人气教程排行