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
本文实例讲述了Yii使用Captcha验证码的方法。分享给大家供大家参考,具体如下: 详细代码可参考:yii自带的示例代码post项目,里面有一个contact表单用到了验证码. 1. Model: 将验证码加入UserLogin的一个属性: ...
yii2中文验证码, yii2成语验证码, 网站上的联络我们每天都有不厌其烦的广告邮件,而且大多数都是国外英文的推销, 来个中文验证码搞定一切, 瞬间清净了. 本验证码安装方便, 字体文件精减过, 文件体积不大, 显示速度快...
在视图文件中,你可以使用 `yii\captcha\Captcha` 表单字段来渲染验证码图像和输入框。例如,在登录或注册表单中: ```php $form = ActiveForm::begin(); ?> ... $form->field($model, 'captcha')->widget...
本文实例讲述了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 产生一个验证码图片. ...
首先,我们需要理解Yii验证码的工作原理。Yii的验证码组件`CCaptchaAction`负责生成和验证验证码。当用户尝试提交包含验证码的表单时,系统会检查用户输入的验证码是否与服务器端存储的验证码一致。如果一致,则验证...
同时,在模型的`rules`方法中添加一个规则来验证该字段,并使用`captcha`规则来确保输入的验证码与生成的验证码匹配。 ```php public function rules() { return [ ['verifyCode', 'required'], ['verifyCode', '...
以下是根据给定文件内容整理的Yii2增加验证码步骤详解的知识点。 首先,在控制器中增加验证码的Action。对于要增加验证码的登录页面,可以在`siteController`控制器的`actions()`方法中定义一个新的Action,这里以`...
最近需要用到验证码,搜索了很多关于Yii2验证码的切换的介绍,下面我来记录一下,有需要了解Yii2下验证码的切换的朋友可参考。希望此文章对各位有所帮助。 模型代码如下: <?php namespace app\admin\models; use...
尽管yii \ captcha \ Captcha仅使用英文字母来渲染验证码图像,而softark \ mbcaptcha \ Captcha可以使用多字节字符来渲染图像...默认为日文平假名,但是您可以通过提供适当的字体来使用任何多字节字符。 (可选)...
以上就是Yii2简单实现给表单添加验证码的方法。除了验证码功能本身外,Yii2框架还通过控制器动作、模型验证规则和视图渲染的方式,为开发者提供了一种结构化和模块化的方法来增强应用的安全性。值得一提的是,本文中...