Web开发的过程中, 经常会用到验证码, 以防止机器人不断的提交数据, 造成网站的瘫痪. Yii里提供了一个验证码的插件, 就是Captcha. 在项目中使用Captcha需要以下一些设置:
在Controller里添加方法 actions
public function actions() { return array( 'captcha'=> array( 'class'=>'CCaptchaAction', 'width'=>140, //默认120 'height'=>70, //默认50 'padding'=>2, //文字周边填充大小 'backColor'=>0xFFFFFF, //背景颜色 'foreColor'=>0x2040A0, //字体颜色 'minLength'=>6, //设置最短为6位 'maxLength'=>7, //设置最长为7位,生成的code在6-7直接rand了 'transparent'=>false, //显示为透明,默认中可以看到为false 'offset'=>-2, //设置字符偏移量 #'controller'=>'admin', //拥有这个动作的controller )); }
2.然后在相应的view中插入下面代码:
<?php if (extension_loaded('gd')): ?> <div class="row"> <?php echo CHtml::activeLabelEx($model, 'verifyCode') ?> <div> <?php $this->widget('CCaptcha'); ?> <?php echo CHtml::activeTextField($model,'verifyCode'); ?> </div> <div class="hint">Please enter the letters as they are shown in the image above. <br/>Letters are not case-sensitive.</div> </div> <?php endif; ?> 具体情况可以根据自己需要具体修改
3.在model中添加一个verifycode属性,然后通过captcha验证器来验证用户输入的验证码:
class User extends CActiveRecord { public $verifyCode; //为User Model 设置一个新的属性 public function rules() { return array( ......... array('verifyCode', 'captcha', 'on'=>'login', 'allowEmpty'=> !extension_loaded('gd')), ); } }
第三步要注意的是'on'=>'login'对于刚接触yii的人添加很多时候不成功都是没有理解这段的意思。这段代码是指你要应用的场景。如果你在controller里没有设置场景,就去掉这一段代码。都添加完成后可以看手册调整controller中相关参数可以更改样式:
相关推荐
一个可以解决yii验证码页面刷新验证码不刷新和验证码在提交之后不刷新的验证码类,具体配置教程可参考我的这篇文章:http://blog.csdn.net/likunlun1234/article/details/39343747
yii2框架实现验证码的添加以及验证
本文实例讲述了Yii使用Captcha验证码的方法。分享给大家供大家参考,具体如下: 详细代码可参考:yii自带的示例代码post项目,里面有一个contact表单用到了验证码. 1. Model: 将验证码加入UserLogin的一个属性: ...
yii2中文验证码, yii2成语验证码, 网站上的联络我们每天都有不厌其烦的广告邮件,而且大多数都是国外英文的推销, 来个中文验证码搞定一切, 瞬间清净了. 本验证码安装方便, 字体文件精减过, 文件体积不大, 显示速度快...
本文实例讲述了YII2框架中验证码的简单使用方法。分享给大家供大家参考,具体如下: 验证码的使用是比较频繁的。YII2中已经帮我们做好了封装。 首先我们在控制器里创建一个actions方法,用于使用yii\captcha\Captcha...
使用方法如下: 第一步: 因为我本身建立了modules,所以我在我的modules下新建了models的目录(默认gii生成modules是没有这个目录的),我取名为LoginForm.php 代码 如下: namespace app\modules\XXX\models;//这...
因为YII2不支持中文验证码,所以写了一个,欢迎下载 支持成语产生。 使用说明在PSCaptcha.php文件中 压缩包内带字体,所以有些大 文件放到 common\libs\captcha 目录,没有就新建 * PSCaptcha 产生一个验证码图片. ...
主要介绍了yii2中添加验证码的实现方法,实例分析了Yii2中实现添加验证码的具体步骤与相关功能代码,需要的朋友可以参考下
主要给大家介绍了Yii输入正确验证码却验证失败的解决方法,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
最近需要用到验证码,搜索了很多关于Yii2验证码的切换的介绍,下面我来记录一下,有需要了解Yii2下验证码的切换的朋友可参考。希望此文章对各位有所帮助。 模型代码如下: <?php namespace app\admin\models; use...
本来以为yii2框架验证码这块很全面,尝试百度google了一下,大多数教程写的零零散散不全面,想着自己写一份带有完整步骤的验证码教程。 我们假设site/login 表单登录需要增加验证码。 1、siteController控制器的...
尽管yii \ captcha \ Captcha仅使用英文字母来渲染验证码图像,而softark \ mbcaptcha \ Captcha可以使用多字节字符来渲染图像...默认为日文平假名,但是您可以通过提供适当的字体来使用任何多字节字符。 (可选)...
主要介绍了Yii2简单实现给表单添加验证码的方法,简单分析了Yii中控制器的相关设置、表单模型的创建及视图的调用技巧,需要的朋友可以参考下