Rumah > pembangunan bahagian belakang > tutorial php > PHP开发框架Yii Framework教程(20) UI组件 Captcha示例

PHP开发框架Yii Framework教程(20) UI组件 Captcha示例

黄舟
Lepaskan: 2023-03-05 07:50:02
asal
1419 orang telah melayarinya

Captcha(全自动区分计算机和人类的图灵测试-Completely Automated Public Turing test to tell Computers and Humans Apart,简称CAPTCHA)俗称验证码,是一种区分用户是计算机和人的公共全自动程序。在CAPTCHA测试中,作为服务器的计算机会自动生成一个问题由用户来解答。这个问题可以由计算机生成并评判,但是必须只有人类才能解答。由于计算机无法解 答CAPTCHA的问题,所以回答出问题的用户就可以被认为是人类。

Yii Framework提供了类CCaptcha和CCaptchaAction用 于支持验证码,要注意的是这个功能需要有PHPGD扩展支持,可以通过Yii的Requirements应用来查询:

586.png

如果显示Warning,可以通过安装GD扩展库,并修改PHP.ini打开该功能。

CCaptcha也提供方法 CCaptcha::checkRequirements() 来检测GD库是否安装。

本例通过修改Yii Framework 开发教程(16) UI 组件 StarRating示例 为其添加Captcha功能,只有输入的验证码正确时,用户评分才有效,避免机器自动评分。

首先是修改 DataModel,添加一个属性verifyCode 用来存放用户输入的验证码,并给其添加CCaptchaValidator验证。

class
DataModel extends CFormModel{public $rating;public $verifyCode;
public function rules(){
return array(array('rating,verifyCode', 'safe'),
array('verifyCode','captcha','allowEmpty'=>!CCaptcha::checkRequirements()),);
}}
Salin selepas log masuk

然后修改SiteController,添加actions方法,Captcha组件缺省使用CCaptchaAction,其缺省ID为captcha。

public function actions()
{
return array(
'captcha'=>array(
'class' => 'CCaptchaAction',
));
}
Salin selepas log masuk

下面就可以在View中添加Captcha组件了:

beginWidget('CActiveForm'); ?>
errorSummary($model); ?>widget('CStarRating',
array('model'=>$model,'attribute'=>'rating','name'=>'rating','value'=>3,)); 
?>
label($model,'verifyCode')
 ?>
 widget('CCaptcha'); 
 ?>textField($model,'verifyCode') ?>
endWidget(); ?>
Salin selepas log masuk

587.png

以上就是PHP开发框架Yii Framework教程(20) UI组件 Captcha示例的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan