Yii2自帶驗證碼實現

2022-06-17 10:18:09 字數 1270 閱讀 3603

總共分為三個方面:控制器配置、模型rules配置和檢視配置。

第一步:控制器配置

將下列**配置在actions中,請求驗證碼鏈結對應為 「控制器/captcha」

'captcha' => [

'class' => 'yii\captcha\captchaaction',

// '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中加入如下**即可了

<?= $form->field($model,'verifycode')->widget(

captcha::classname(),

['template' => '',

'captchaaction'=>'user/captcha', // 此注意要使用自己配置的那個控制器驗證碼路由

'imageoptions'=>[ 'style'=>'cursor:pointer;width:77px']

])

這是需要在captchaaction類中的renderimagebygd方法中加入如下**:

imagecolordeallocate($image, $forecolor);

ob_clean(); // 此行為插入**,目的是清空快取區為輸出提供乾淨空間。

ob_start();

imagepng($image);

imagedestroy($image);

yii2 驗證碼的使用

see 以下根據 mvc 模型的順序來新增 1.model 層,或者可以在預設的 loginform.php 上修改,如下.class loginform extends model 如果使用預設 sitecontroller 控制器,紅包部分 可不用填寫,如果使用其他比如我使用 控制器,那紅色部分...

Yii2驗證碼使用,不改原始碼實現驗證碼重新整理

1.定義驗證碼action 以sitecontroller為例 namespace useyii useyii web controller class sitecontroller extends controller 2.檢視中輸出驗證碼 useyii captcha captcha role ...

yii2 0表單自帶驗證碼

yii2.0的自帶的驗證依賴於gd2或者imagemagick擴充套件。使用步驟如下 第一步,控制器 在任意controller裡面重寫方法 第二步 模型層,如下 useyii useyii base model class login extends model 不能為空 return array...