时间:2021-07-01 10:21:17 帮助过:21人阅读
Yii Framework提供了类CCaptcha和CCaptchaAction用 于支持验证码,要注意的是这个功能需要有PHPGD扩展支持,可以通过Yii的Requirements应用来查询:
如果显示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中文网(www.gxlcms.com)!