最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Yii輸入正確驗證碼卻驗證失敗的解決方法

 更新時間:2017年06月06日 11:41:30   作者:Enda  
這篇文章主要給大家介紹了Yii輸入正確驗證碼卻驗證失敗的解決方法,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。

前言

最近在做一個需求時,發(fā)現(xiàn)輸入正確驗證碼,但是都提示驗證碼錯誤

最后追蹤代碼發(fā)現(xiàn),如果 Model 在 save 前,單獨做了 validate 驗證,則在驗證結(jié)束后,會重新生成驗證碼

然后在我們 Model save 時,也會進行 validate 驗證,驗證時,驗證碼已經(jīng)重新生成了,所以會匹配不上

// 如果這里用到了驗證碼,就會出問題

$model = new Test();

$model->validate();

$model->save();
// 這樣是正確的

$model = new Test();
// 把需要驗證的 attribute 放進去,排除驗證碼字段
$model->validate(array('test1','test2'));

$model->save()

我們可以看framework/web/widgets/captcha/CCaptchaAction.php 可以很容易就發(fā)現(xiàn)問題了

<?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;
 }
}

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關文章

  • PHP實現(xiàn)文件上傳操作和封裝

    PHP實現(xiàn)文件上傳操作和封裝

    這篇文章主要為大家詳細介紹了PHP實現(xiàn)文件上傳操作和封裝,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • PHP Laravel中的Trait使用方法

    PHP Laravel中的Trait使用方法

    在本篇文章里小編給各位分享了關于PHP Laravel中的Trait使用方法和相關知識點,有需要的朋友們學習下。
    2019-01-01
  • PHP XML和數(shù)組互相轉(zhuǎn)換詳解

    PHP XML和數(shù)組互相轉(zhuǎn)換詳解

    這篇文章主要介紹了PHP XML和數(shù)組互相轉(zhuǎn)換詳解的相關資料,需要的朋友可以參考下
    2016-10-10
  • Laravel中日期時間處理包Carbon的簡單使用

    Laravel中日期時間處理包Carbon的簡單使用

    處理日期和時間需要考慮很多事情,例如日期的格式、時區(qū)、閏年和天數(shù)各異的月份,自己處理太容易出錯了,下面這篇文章主要給大家介紹了關于在Laravel中日期時間處理包Carbon的簡單使用,需要的朋友可以參考下。
    2017-09-09
  • Zend Framework處理Json數(shù)據(jù)方法詳解

    Zend Framework處理Json數(shù)據(jù)方法詳解

    這篇文章主要介紹了Zend Framework處理Json數(shù)據(jù)方法,結(jié)合實例形式分析了zend framework針對json相關操作類的使用方法,需要的朋友可以參考下
    2016-12-12
  • php中memcache 基本操作實例

    php中memcache 基本操作實例

    本文實例講述了PHP中Memcache的基本操作及用法。分享給大家供大家參考。有需要的小伙伴快來研究下吧。
    2015-05-05
  • 實例講解PHP表單驗證功能

    實例講解PHP表單驗證功能

    在本文中我們給大家分享了關于PHP表單驗證功能以及相關的實例代碼內(nèi)容,有需要的朋友們學習下。
    2019-02-02
  • php切割頁面div內(nèi)容的實現(xiàn)代碼分享

    php切割頁面div內(nèi)容的實現(xiàn)代碼分享

    今天在百度知道看到一個關于php獲取DIV內(nèi)容的問題,做了一晚,終于是做出來了
    2012-07-07
  • php如何修改SESSION的生存存儲時間的實例代碼

    php如何修改SESSION的生存存儲時間的實例代碼

    本篇文章主要介紹了php如何修改SESSION的生存時間的實例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • Thinkphp5框架異常處理操作實例分析

    Thinkphp5框架異常處理操作實例分析

    這篇文章主要介紹了Thinkphp5框架異常處理操作,結(jié)合實例形式分析了Thinkphp5框架異常處理操作原理、操作方法與相關使用技巧,需要的朋友可以參考下
    2020-06-06

最新評論

永吉县| 新田县| 昌宁县| 博乐市| 清镇市| 武威市| 滦南县| 大关县| 德阳市| 西宁市| 海丰县| 嵩明县| 嘉义市| 西宁市| 岳阳市| 临沧市| 潼关县| 屏边| 宕昌县| 绥滨县| 文化| 永康市| 沙雅县| 五常市| 云和县| 辽宁省| 蓬溪县| 临武县| 固始县| 东辽县| 聂拉木县| 博野县| 嵩明县| 大埔县| 子洲县| 淅川县| 行唐县| 罗甸县| 祁阳县| 滁州市| 铅山县|