yii自带验证码怎么做

yii自带验证码怎么做

总共分为三个方面:控制器配置、模型rules配置和视图配置。

第一步:控制器配置

将下列代码配置在actions中,请求验证码链接对应为 “控制器/captcha”。

'captcha' => [         'class' => 'yiicaptchaCaptchaAction',    //     'backColor'=>0x000000,//背景颜色         'maxLength' => 4, //最大显示个数         'minLength' => 4,//最少显示个数         'padding' => 5,//间距         'height'=>45,//高度         'width' => 75,  //宽度      //   'foreColor'=>0xffffff,     //字体颜色         'offset'=>4, ],

第二步:模型rules配置,即验证配置。

首先声明公共变量 

public $verifyCode

其次在rules方法中配置验证

['verifyCode', 'captcha','captchaAction'=>'user/captcha','on' => ['login']]

在这条配置中的”captchaAction”加入了配置,即控制器的路由,如果不进行配置的话会走site/captcha的路由,这是框架样例的路由。

第三步:视图中的配置

在ActiveForm中加入如下代码:

field($model,'verifyCode')->widget(    Captcha::className(),    [    'template' => '{image}{input}',    'captchaAction'=>'user/captcha', // 此注意要使用自己配置的那个控制器验证码路由    'imageOptions'=>[ 'style'=>'cursor:pointer;width:77px']    ]    )

最后有一个巨坑的问题:由于编码过程中使用了一些windows下的换行符或者空格,导致了未知的输出,会导致验证码图片不能够正常的生成。

这是需要在CaptchaAction类中的renderImageByGD方法中加入如下代码:

imagecolordeallocate($image, $foreColor); ob_clean(); // 此行为插入代码,目的是清空缓存区为输出图片提供干净空间。ob_start();imagepng($image);imagedestroy($image);

创想鸟,大量的免费yii入门教程,欢迎在线学习!

以上就是yii自带验证码怎么做的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/106394.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月22日 07:54:15
下一篇 2025年11月22日 08:39:08

相关推荐

发表回复

登录后才能评论
关注微信