日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

解決Yii自帶的驗證碼不隨頁面刷新自動刷新的問題

 朱啟發(fā) 2014-11-18

如何添加驗證碼,這里就不再多說了,網(wǎng)上有很多的資料。自己按照網(wǎng)上的資料搜索添加即可,

驗證碼添加好之后,會發(fā)現(xiàn),刷新頁面Yii的驗證碼并不會自動刷新,目前解決這個的辦法有三種:

一、修改源碼CCaptchaAction.php的run方法,不推薦

二、寫一個js,在頁面刷新的時候調(diào)用js自動點擊驗證碼圖片實現(xiàn)刷新,感覺有點...,太依賴js了不太好吧

三、在components文件夾下新建一個文件Captcha.php

添加如下代碼,重寫run方法:

class Captcha extends CCaptchaAction{
    //重寫run方法,使得驗證碼在頁面刷新時刷新
    public function run(){
        if (isset($_GET[self::REFRESH_GET_VAR])){
            $code = $this->getVerifyCode(true);
            echo CJSON::encode(array(
                'hash1' => $this->generateValidationHash($code),
                'hash2' => $this->generateValidationHash(strtolower($code)),
                'url' => $this->getController()->createUrl($this->getId(), array('v' => uniqid())),
            ));
        }else {
            $this->renderImage($this->getVerifyCode(true));
            Yii::app()->end();
        }    
    }
}

之后修改controller中class為captcha即可,代碼如下

public function actions(){
        return array(
                'captcha'=>array(
                        'class'=>'Captcha',
                        'backColor'=>0xFFFFFF,
                        'maxLength'=>'4',       // 最多生成幾個字符
                        'minLength'=>'4',       // 最少生成幾個字符
                        'height'=>'40',
                        'width'=>'230',
                        'transparent'=>true,  //顯示為透明
                        'testLimit' => 0,  //限制相同驗證碼出現(xiàn)的次數(shù),0為不限制
                ),
        );
    }

現(xiàn)在再去刷新一下頁面試試看,驗證碼是不是隨頁面刷新而刷新了呢


    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多