Captcha(全自动区分计算机和人类的图灵测试-Completely Automated Public Turing test to tell Computers and Humans Apart,简称CAPTCHA)俗称验证码,是一种区分用户是计算机和人的公共全自动程序。在CAPTCHA测试中,作为服务器的计算机会自动生成一个问题由用户来解答。这个问题可以由计算机生成并评判,但是必须只有人类才能解答。由于计算机无法解答CAPTCHA的问题,所以回答出问题的用户就可以被认为是人类。
Yii Framework提供了类CCaptcha和CCaptchaAction用于支持验证码,要注意的是这个功能需要有PHP GD扩展支持,可以通过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组件了:
<div class="form">
<?php $form=$this->beginWidget('CActiveForm'); ?>
<?php echo $form->errorSummary($model); ?>
<?php if(CCaptcha::checkRequirements()): ?>
<?php $this->widget('CStarRating',array(
'model'=>$model,
'attribute'=>'rating',
'name'=>'rating',
'value'=>3,
)); ?>
<p />
<?php echo $form->label($model,'verifyCode') ?>
<p />
<?php $this->widget('CCaptcha'); ?>
<p />
<?php echo $form->textField($model,'verifyCode') ?>
<div class="row submit">
<?php echo CHtml::submitButton('Submit'); ?>
</div>
<?php endif ?>
<?php $this->endWidget(); ?>
</div><!-- form -->
本例下载
分享到:
相关推荐
Yii Framework API手册是针对开发者的一款详尽参考资料,它包含了Yii框架的所有核心组件、类库以及扩展的使用方法和接口信息。Yii是一个高性能、基于组件的PHP框架,用于开发Web 2.0应用。API(Application ...
主要介绍了YII Framework框架教程之使用YIIC快速创建YII应用的方法,详细分析说明了YII Framework框架使用YIIC命令行创建应用的相关技巧与注意事项,需要的朋友可以参考下
yii framework框架 + yii app模板(基本、高级)
YII Framework是一个基于PHP的高级Web应用开发框架,它提供了一套日志系统,以便开发者追踪和记录应用程序运行时的状态和潜在问题。本文将详细介绍YII中日志的配置、使用方法及相关注意事项,通过实例阐述如何在YII...
首先,Yii框架的缓存是通过组件方式定义的,位于/yii_dev/yii/framework/caching目录下。该目录包括了多种缓存组件实现,例如CApcCache、CCache、CDbCache等,它们分别对应不同的缓存存储媒介,如APC、文件、数据库...
### Yii Framework 2.0 权威指南知识点详解 #### 一、Yii框架概述 - **定义**:Yii是一款高效能、基于组件的PHP框架,主要用于加速现代Web应用的开发进程。其名称“Yii”(发音类似于“易”)在中国文化中有“极致...
Yii框架是基于组件的高性能PHP框架,用于开发Web2.0应用。这个“yii framework 中文完全手册”提供了详尽的指南,帮助开发者理解和利用Yii的强大功能。在深入探讨之前,我们先简单介绍一下Yii框架的基本概念。 Yii...
Yii Framework 1.1.6 是一个高效、可扩展的 PHP 开发框架,它为开发者提供了构建大型Web应用所需的工具和功能。这个版本是Yii框架的稳定版本之一,发布于2011年,旨在提高开发效率并降低维护成本。 在Yii 1.1.6中,...
Yii Framework是一个高性能的PHP框架,用于构建Web 2.0...如果你对Yii或PHPExcel有进一步的兴趣,可以查阅相关专题教程,如Yii框架的入门教程、PHP优秀开发框架总结、PHP字符串操作、数据库操作等,以深入学习和掌握。
Yii Framework是一个高性能的PHP5的web应用程序开发框架。通过一个简单的命令行工具 yiic 可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的开发。
Yii是一个高性能的PHP5的web应用程序开发框架。通过一个简单的命令行工具 yiic 可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的开发。
Yii Framework 是一个高性能的,基于组件的PHP框架,用于开发Web 2.0应用程序。它以其高效性、灵活性和易用性而闻名,是许多专业开发者首选的开发工具。"最新最完善的YII框架"这一描述暗示我们将探讨的是Yii的最新...
yii framework 1.1.14 chm文档,从官方html文档编译,展示效果很好.
【Yii 2.0进阶版】:Yii 2.0是 Yii 框架的最新版本,它是一个高性能、基于组件的 PHP 框架,用于开发 Web 2.0 应用程序。Yii 2.0 提供了丰富的特性,如 MVC(模型-视图-控制器)架构模式、 ActiveRecord ORM、依赖...
Yii Framework 1.10的API手册
主要介绍了Yii Framework框架中事件和行为的区别及应用,结合实例形式分析了Yii Framework框架中事件和行为的相关概念、原理、区别及应用操作技巧,需要的朋友可以参考下
PHP实例开发源码—Yii Framework php框架.zip PHP实例开发源码—Yii Framework php框架.zip PHP实例开发源码—Yii Framework php框架.zip
教程名称:Yii2.0 打造京东商城平台 PHP电商实战 Yii2.0视频教程 教程内容: 包含了电商的所有功能模块:商品展示、购物车功能、下单支付、发货、确认收获、商品管理、订单管理。电商API接口开发。Yii2.0级基于Yii...