yii输入正确验证码提示错误
在做一个需求时,发现输入正确验证码,但是都提示验证码错误。
最后追踪代码发现,如果 Model 在 save 前,单独做了 validate 验证,则在验证结束后,会重新生成验证码。然后在我们 Model save
时,也会进行 validate 验证,验证时,验证码已经重新生成了,所以会匹配不上。
问题发现:
我们可以看framework/web/widgets/captcha/CCaptchaAction.php
可以很容易就发现问题了。
<?php class CaptchaAction extends CCaptchaAction{ public function validate($input, $caseSensitive) { $code = $this->getVerifyCode(); $valid = $caseSensitive ? ($input === $code) : !strcasecmp($input, $code); $session = Yii::app()->session; $session->open(); $name = $this->getSessionKey() . 'count'; if (!Yii::app()->request->isAjaxRequest) { $session[$name] = $session[$name] + 1; } // 这里会重新生成 if ($session[$name] > $this->testLimit && $this->testLimit > 0) { $this->getVerifyCode(true); } return $valid; } }
// 如果这里用到了验证码,就会出问题$model = new Test(); $model->validate(); $model->save();
// 这样是正确的$model = new Test(); // 把需要验证的 attribute 放进去,排除验证码字段 $model->validate(array('test1','test2')); $model->save()
相关文章教程推荐:yii教程
以上是yii输入正确验证码提示错误的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

谷歌浏览器提示此标签页的内容正在被共享怎么办?我们在使用谷歌浏览器打开新标签的时候有时候会遇到提示此标签页的内容正在被共享,那么这是怎么回事?下面就让本站来为用户们来仔细的介绍一下谷歌浏览器提示此标签页的内容正在被共享的问题解析吧。 谷歌浏览器提示此标签页的内容正在被共享解决方法 1、打开谷歌浏览器,在浏览器右上角可以看到三个点“自定义和控制Googlechrome”用鼠标点击图标进行图标。 2、点击后,谷歌浏览器的菜单窗口将弹出到下面,鼠标将移动到“更多工具

如果您在使用打印机时遇到错误消息,例如操作无法完成(错误0x00000771),可能是因为打印机已断开连接。在这种情况下,您可以通过以下方法解决问题。在本文中,我们将讨论如何在Windows11/10PC上修复此问题。整个错误信息说:操作无法完成(错误0x0000771)。指定的打印机已被删除。修复WindowsPC上的0x00000771打印机错误若要修复打印机错误操作无法完成(错误0x0000771),指定的打印机已在Windows11/10PC上删除,请遵循以下解决方案:重新启动打印假脱机

解密HTTP状态码460:为什么会出现这个错误?引言:在日常的网络使用中,经常会遇到各种各样的错误提示,其中包括HTTP状态码。这些状态码是HTTP协议定义的一种机制,用于指示请求的处理情况。在这些状态码中,有一种比较罕见的错误码,即460。本文将深入探讨这个错误码,并解释为什么会出现这个错误。HTTP状态码460的定义:首先,我们需要了解HTTP状态码的基

目录解决方法一解决方法二一、删除Windows更新的临时文件二、修复受损的系统文件三、查看并修改注册表项四、关闭网卡IPv6五、运行WindowsUpdateTroubleshootor工具进行修复六、关闭防火墙和其它相关的杀毒软件。七、关闭WidowsUpdate服务。解决方法三解决方法四华为计算机Windows更新出现“0x8024401c”报错问题现象问题原因解决方案仍未解决?最近web服务器因为系统漏洞需要更新,登录服务器之后,更新提示错误代码0x8024401c解决方法一

谷歌浏览器不显示验证码图片怎么办?在使用谷歌浏览器登录网页有时候需要验证码验证。部分用户在使用图片验证码的时候发现谷歌浏览器无法正常显示图片的内容。这应该怎么办呢?下面小编带来谷歌浏览器验证码不显示处理方法介绍,希望对大家有所帮助! 方法介绍 1、进入软件,点击右上角的“更多”按钮,选择下方选项列表中的“设置”进入。 2、进入新界面后,点击左侧的“隐私设置和安全性”选项。 3、接着点击右侧中的“网站设置&rdquo

显示错误是在香香腐宅app中可能会出现的问题,有些用户还不太清楚香香腐宅app为什么显示错误,可能是网络连接问题、后台程序过多、注册信息错误等问题,接下来就是小编为用户带来的app显示错误解决方法的介绍,感兴趣的用户快来一起看看吧!香香腐宅app为什么显示错误答:网络连接问题、后台程序过多、注册信息错误等详情介绍:1、【网络问题】解决方法:检查设备连接网络状态,重新连接或选择其他网络连接使用即可。2、【后台程序过多】解决方法:关闭正在运行的其他程序,释放系统,可以加快软件的运行。3、【注册信息错

LinuxOops:详解这一错误的含义,需要具体代码示例什么是LinuxOops?在Linux系统中,"Oops"指的是内核出现了一个严重的错误导致系统崩溃的情况。Oops实际上是一种内核崩溃的机制,它会在发生致命错误时停止系统运行,并打印出相关的错误信息,以便开发者对问题进行诊断和修复。Oops通常发生在内核空间中,与用户空间的应用程序无关。当内核遇到

标题:解决jQueryAJAX请求出现403错误的方法及代码示例403错误是指服务器禁止访问资源的请求,通常会导致出现这个错误的原因是请求缺少权限或者被服务器拒绝。在进行jQueryAJAX请求时,有时候会遇到这种情况,本文将介绍如何解决这个问题,并提供代码示例。解决方法:检查权限:首先要确保请求的URL地址是正确的,同时验证是否有足够的权限来访问该资
