yii自带验证码的实现方法

  介绍

这篇文章主要介绍yii自带验证码的实现方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

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

<强>第一步:控制器配置

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

& # 39;验证码# 39;,=祝辞,(   ,,,,,,,,& # 39;类# 39;,=祝辞,& # 39;yii \验证码\ CaptchaAction& # 39;   ,,,//,,,,,& # 39;背景色# 39;=祝辞0 x000000,//背景颜色   ,,,,,,,,& # 39;最大长度,,=祝辞,4,,//最大显示个数   ,,,,,,,,& # 39;最小长度,,=祝辞,4//最少显示个数   ,,,,,,,,& # 39;填充# 39;,=祝辞,5//间距   ,,,,,,,,& # 39;高度# 39;=在45岁//高度   ,,,,,,,,& # 39;宽度# 39;,=祝辞,75,,,//宽度   ,,,,,//,,,& # 39;字体颜色# 39;=祝辞0 xffffff,,,,,,//字体颜色   ,,,,,,,,& # 39;抵消# 39;=祝辞;4,   ],

<强>第二步:模型规则配置,即验证配置。

首先声明公共变量

public 美元verifyCode

其次在规则方法中配置验证

[& # 39;verifyCode& # 39;,, & # 39;验证码# 39;,& # 39;captchaAction& # 39;=祝辞& # 39;用户/验证码# 39;,& # 39;在# 39;,=祝辞,[& # 39;登录# 39;]]

在这条配置中的“captchaAction"加入了配置,即控制器的路由,如果不进行配置的话会走网站/验证码的路由,这是框架样例的路由。

<强>第三步:视图中的配置

在ActiveForm中加入如下代码:

& lt; ?=,美元形式→字段(模型中,美元& # 39;verifyCode& # 39;)→部件(   ,,,验证码::类名(),   ,,,(   ,,,& # 39;模板# 39;,=祝辞,& # 39;{形象}{输入}& # 39;,   ,,,& # 39;captchaAction& # 39;=祝辞& # 39;用户/验证码# 39;,,//,此注意要使用自己配置的那个控制器验证码路由   ,,,& # 39;imageOptions& # 39;=祝辞(,& # 39;风格# 39;=祝辞& # 39;游标:指针;宽度:77 px # 39;】   ,,,)   ,,,)

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

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

imagecolordeallocate($图像,字体颜色美元);   ,//ob_clean();还以为,此行为插入代码,目的是清空缓存区为输出图片提供干净空间。   ob_start ();   imagepng(形象);   imagedestroy图像($);

yii自带验证码的实现方法