• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

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

PHP admin 1年前 (2018-06-08) 7次浏览 未收录 0个评论

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

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

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

如果显示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()),);
}}

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

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

下面就可以在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(); ?>

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

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


39MO , 版权所有丨如未注明 , 均为原创丨转载请注明原文链接:PHP开发框架Yii Framework教程(20) UI组件 Captcha示例
喜欢 (0)
[1353713598@qq.com]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址