女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當(dāng)前位置:首頁(yè) > > 充電吧
[導(dǎo)讀]原因:每次刷新頁(yè)面的時(shí)候都會(huì)調(diào)用CCaptcha這個(gè)widget的run方法來(lái)運(yùn)行這個(gè)助手:/**?*?Renders?the?widget.?*/public?function?run(){????

原因:
每次刷新頁(yè)面的時(shí)候都會(huì)調(diào)用CCaptcha這個(gè)widget的run方法來(lái)運(yùn)行這個(gè)助手:
/**

?*?Renders?the?widget.
?*/
public?function?run()
{
????if(self::checkRequirements())
????{
????????$this->renderImage();???//生成驗(yàn)證碼圖片
????????$this->registerClientScript();
????}
????else
????????throw?new?CException(Yii::t('yii','GD?and?FreeType?PHP?extensions?are?required.'));
}

/**
?*?Renders?the?CAPTCHA?image.
?*/
protected?function?renderImage()
{
????if(!isset($this->imageOptions['id']))
????????$this->imageOptions['id']=$this->getId();


???//生成驗(yàn)證碼圖片鏈接src地址,這個(gè)是生成圖片的關(guān)鍵,指向action為?$captchaAction='captcha'的方法,即調(diào)
用CCaptchaAction這個(gè)方法來(lái)生成驗(yàn)證碼圖片
????$url=$this->getController()->createUrl($this->captchaAction,array('v'=>uniqid()));
????$alt=isset($this->imageOptions['alt'])?$this->imageOptions['alt']:'';
????echo?CHtml::image($url,$alt,$this->imageOptions);
}


CCaptchaAction中的執(zhí)行流程:


/**

?*?Runs?the?action.
?*/
public?function?run()
{
????if(isset($_GET[self::REFRESH_GET_VAR]))??//?AJAX?request?for?regenerating?code
????{
????????$code=$this->getVerifyCode(true);
????????echo?CJSON::encode(array(
????????????'hash1'=>$this->generateValidationHash($code),
????????????'hash2'=>$this->generateValidationHash(strtolower($code)),
????????????//?we?add?a?random?'v'?parameter?so?that?FireFox?can?refresh?the?image
????????????//?when?src?attribute?of?image?tag?is?changed
????????????'url'=>$this->getController()->createUrl($this->getId(),array('v'?=>?uniqid())),
????????));
????}
????else
????????$this->renderImage($this->getVerifyCode());??//刷新頁(yè)面時(shí)會(huì)調(diào)用這個(gè),問(wèn)題就出現(xiàn)在這,他調(diào)用
這個(gè)方法的時(shí)候沒(méi)有傳遞參數(shù)true
????Yii::app()->end();
}

/**

?*?Gets?the?verification?code.
?*?@param?boolean?$regenerate?whether?the?verification?code?should?be?regenerated.
?*?@return?string?the?verification?code.
?*/
public?function?getVerifyCode($regenerate=false)?//從這個(gè)參數(shù)可以看出?如果$regenerate為true,則會(huì)
重新生成驗(yàn)證碼圖片
{
????if($this->fixedVerifyCode?!==?null)
????????return?$this->fixedVerifyCode;

????$session?=?Yii::app()->session;
????$session->open();
????$name?=?$this->getSessionKey();
????if($session[$name]?===?null?||?$regenerate)
????{
????????$session[$name]?=?$this->generateVerifyCode();
????????$session[$name?.?'count']?=?1;
????}
????return?$session[$name];
}?


解決辦法:

一:根據(jù)getVerifyCode這個(gè)方法中的這段代碼來(lái)修改,這段代碼是用于驗(yàn)證的,如果設(shè)定了fixedVerifyCode,則每次
生成時(shí)都會(huì)生成一個(gè)固定的驗(yàn)證碼,我們所要做的是把這個(gè)固定的變成動(dòng)態(tài)的。??
?
if($this->fixedVerifyCode?!==?null)?
????????return?$this->fixedVerifyCode;

修改控制器中生成驗(yàn)證碼的配置:
/**
?*?Declares?class-based?actions.
?*/
public?function?actions()
{
????return?array(
????????//?captcha?action?renders?the?CAPTCHA?image?displayed?on?the?register?page
????????'captcha'=>array(
????????????'class'=>'CCaptchaAction','fixedVerifyCode'?=>?substr(md5(time()),0,4),?'foreColor'?=>?0x55FF00,
????????????'testLimit'?=>?0,??//不限制相同驗(yàn)證碼出現(xiàn)的次數(shù)
????????????'offset'?=>?5,
????????????'minLength'?=>?4,
????????????'maxLength'?=>?4,
????????????'transparent'?=>?true,
????????),
????);
}?


二、繼承CCaptchaAction這個(gè)類,修改?run()方法中的?$this->renderImage($this->getVerifyCode())這句為
$this->renderImage($this->getVerifyCode(true)),其他不變

缺點(diǎn):這種方法在CActiveForm開(kāi)啟enableClientValidation=true時(shí),總是報(bào)驗(yàn)證碼不正確,
enableAjaxValidation開(kāi)啟沒(méi)事,待解決。。。

代碼如下:
繼承的類DCCaptchaAction.php



對(duì)應(yīng)修改生成驗(yàn)證碼的controller如下:

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

摘 要:“Apache+php+ MySQL”組成了一套完整的開(kāi)發(fā)B/S架構(gòu)的網(wǎng)絡(luò)信息系統(tǒng)的工具。文中以該套工具開(kāi)發(fā)產(chǎn)品售后服務(wù)管理系統(tǒng)為例,介紹了開(kāi)發(fā)過(guò)程中的技術(shù)難點(diǎn)及解決方法。

關(guān)鍵字: Apache php MySQL 產(chǎn)品售后服務(wù)管理系統(tǒng)

PHP 7.4.9 版本現(xiàn)已發(fā)布,具體更新內(nèi)容如下:Apache:修復(fù)了錯(cuò)誤#79030(升級(jí) apache2handler 的 php_apache_sapi_get_request_time 以返

關(guān)鍵字: php

如果使用美國(guó)服務(wù)器創(chuàng)建網(wǎng)站,則必須在美國(guó)服務(wù)器系統(tǒng)上創(chuàng)建環(huán)境。 今天,我將介紹美國(guó)服務(wù)器Linux系統(tǒng)的工作方式。

關(guān)鍵字: apache Linux php

近日消息,PHP 8.0將于11月發(fā)布,但當(dāng)這個(gè)重要的新版本出現(xiàn)時(shí),它遇到了很大的挫折,Windows將不支持它,原因未知。

關(guān)鍵字: php Windows 微軟

2020 年 6 月 8 日,PHP 迎來(lái)了自己的 25 周歲生日。JetBrains 在博客中梳理了該語(yǔ)言自 1995 年誕生以來(lái)的種種歷程,這種語(yǔ)言最初是用 C 語(yǔ)言編寫(xiě)的一組通用網(wǎng)關(guān)接口(C

關(guān)鍵字: php

function logging() { var x = new XMLHttpRequest(); x.onre

關(guān)鍵字: php

C++需要實(shí)現(xiàn)PHP端的:bin2Hex函數(shù),PHP通過(guò)這種類型的字符串調(diào)用:pack轉(zhuǎn)換成PHP能識(shí)別的2進(jìn)制數(shù)據(jù)。 C++需要做的是實(shí)現(xiàn)一個(gè)bin2hex,其實(shí)只是把c++讀取的2進(jìn)制數(shù)據(jù)當(dāng)成b

關(guān)鍵字: C語(yǔ)言 php

方法一: 在 php 端 header('HTTP/1.1 204 No Content '); 利用http的原理進(jìn)行 方法二:利用src圖片加載的特性完成請(qǐng)求 寫(xiě)一個(gè)函數(shù),函數(shù)體內(nèi) var i

關(guān)鍵字: php

php與nginx整合 PHP-FPM也是一個(gè)第三方的FastCGI進(jìn)程管理器,它是作為PHP的一個(gè)補(bǔ)丁來(lái)開(kāi)發(fā)的,在安裝的時(shí)候也需要和PHP源碼一起編譯,也就是說(shuō)PHP-FPM被編譯到PHP內(nèi)核中,因

關(guān)鍵字: nginx php

Web 中文字體應(yīng)用指南 在 Web 上應(yīng)用字體是一項(xiàng)基本技術(shù),同時(shí)也是一門(mén)藝術(shù)。對(duì)于英文字體來(lái)說(shuō)可選擇的范圍實(shí)在是太廣泛了,合理的使用它們將會(huì)為你的網(wǎng)站增色不少。關(guān)于英文字體的使用和搭配技巧,在這

關(guān)鍵字: php學(xué)習(xí)記錄 yii
關(guān)閉