yii2.0验证码总是错误 [ 2.0 版本 ]
请问各位大大,我打验证码时,ajax验证可以通过,提交后却终是出现error信息,验证码错误,我查看session的素有内容,发现正确的验证码就始终不变的,难怪总是错,请问这个怎么解决呢?跪求真理
session内容如下
array(6) { ["__flash"]=> array(0) { } ["__captcha/site/captcha"]=> string(7) "bqcggov" ["__captcha/site/captchacount"]=> int(1) ["__returnUrl"]=> string(19) "/nova/user/register" ["__captcha/user/captcha"]=> string(6) "kappfi" ["__captcha/user/captchacount"]=> int(2) }
每次刷新["__flash"]
是变化的,["__returnUrl"]
始终不变
最佳答案
-
验证码不变需要改框架源码 vender\yiisoft\yii2\captcha\CaptchaAction.php getVerifyCode($regenerate = true)
验证码总是错误 应该是你的 $captchaAction 属性没有设置正确。
model 的rules方法
['captcha', 'captcha', 'message'=>'验证码错误', 'captchaAction'=>'user/captcha'],模板的地方也有个 captchaAction 选项。
<?php echo Captcha::widget(['name'=>'captchaimg','captchaAction'=>'login/captcha','imageOptions'=>['id'=>'captchaimg', 'title'=>'换一个', 'alt'=>'换一个', 'style'=>'cursor:pointer;'],'template'=>'{image}']); ?>共 7 条回复我验证码没有用model,直接自定义的登录页面就是想用yii2框架里面的验证码功能
我直接在页面里面用 <?php echo Captcha::widget(['name'=>'captchaimg','captchaAction'=>'login/captcha','imageOptions'=>['id'=>'captchaimg', 'title'=>'换一个', 'alt'=>'换一个', 'style'=>'cursor:pointer;'],'template'=>'{image}']); ?>
然后在页面里面怎么去把接收到的验证码比对验证呢?
找了一些资料
$imgVerifyCode = Yii::$app->request->post("checkcode");
$imgVerifyCode = HtmlPurifier::process($imgVerifyCode);
$caprcha = new CaptchaValidator();
$verifyRs = $caprcha->validate($imgVerifyCode);
var_dump($verifyRs);
if ($verifyRs == false) {echo "图形验证码有误";
}else{
echo "图形验证码Yes";
}
但是始终通不过验证,始终都是false
其他 2 个回答
-
我验证码没有用model,直接自定义的登录页面就是想用yii2框架里面的验证码功能
我直接在页面里面用 <?php echo Captcha::widget(['name'=>'captchaimg','captchaAction'=>'login/captcha','imageOptions'=>['id'=>'captchaimg', 'title'=>'换一个', 'alt'=>'换一个', 'style'=>'cursor:pointer;'],'template'=>'{image}']); ?>
然后在页面里面怎么去把接收到的验证码比对验证呢?
找了一些资料$imgVerifyCode = Yii::$app->request->post("checkcode"); $imgVerifyCode = HtmlPurifier::process($imgVerifyCode); $caprcha = new CaptchaValidator(); $verifyRs = $caprcha->validate($imgVerifyCode); var_dump($verifyRs); if ($verifyRs == false) { echo "图形验证码有误"; }else{ echo "图形验证码Yes"; } 但是始终通不过验证,始终都是false
共 1 条回复
housirvip
最后登录:2015-08-23
在线时长:20小时9分
- 粉丝4
- 金钱510
- 威望0
- 积分710