>PHP 프레임워크 >YII >yii2 인증 코드 스타일을 설정하는 방법

yii2 인증 코드 스타일을 설정하는 방법

angryTom
angryTom원래의
2020-02-17 17:57:082813검색

yii2 인증 코드 스타일을 설정하는 방법

yii2 인증 코드 스타일 설정 방법

첫 번째 단계, 컨트롤러:

모든 컨트롤러에서 메서드 다시 작성

public function actions()
{        return [
        'captcha' => [
            'class' => 'yii\captcha\CaptchaAction',
            'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
            'backColor' => 0x000000,//背景颜色
            'maxLength' => 6, //最大显示个数
            'minLength' => 5,//最少显示个数
            'padding' => 5,//间距
            'height' => 40,//高度
            'width' => 130,  //宽度
            'foreColor' => 0xffffff,     //字体颜色
            'offset' => 4,        //设置字符偏移量 有效果
        ],       ]; 
}

두 번째 단계, 양식 모델:

여기서만 제공됨 인증 코드 관련 부분품.

추천 관련 기사 및 튜토리얼: yii tutorial

class ContactForm extends Model{    
    public $verifyCode;    
    public function rules(){        
            return [
                ['verifyCode', 'required'],
                ['verifyCode', 'captcha'],
          ];
    }
}

인증 규칙의 인증 코드에 대한 검증자는 captcha입니다. captcha

第三步,视图:

用ActiveForm生成对应字段。

captchaAction参数指定第一步是在写在哪里的,默认是site

세 번째 단계 보기:

ActiveForm을 사용하여 해당 필드를 생성합니다.

captchaAction 매개변수는 첫 번째 단계가 기록되는 위치를 지정합니다. 기본값은 site 내부입니다.

 <?= $form->field($model, &#39;verifyCode&#39;)->widget(Captcha::className(), [
    &#39;template&#39; => &#39;<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-6">{input}</div></div>&#39;,
 ]) ?>

인증코드 생성 및 인증까지 모든 과정이 완료되었습니다.

위는 인증코드를 생성하는 과정인데, 인증코드 번호가 코드에 하드코딩되어 있기 때문에 숫자가 필요한 경우에는 어떻게 해야 할까요?

쉽습니다. CaptchaAction을 상속하고 generateVerifyCode 메서드를 재정의하는 클래스를 직접 작성할 수 있습니다. 예:

namespace yii\captcha;
class   Newcaptcha extends CaptchaAction
{
    protected function generateVerifyCode()
    {
        if ($this->minLength > $this->maxLength) {
            $this->maxLength = $this->minLength;
        }
        if ($this->minLength < 3) {
            $this->minLength = 3;
        }
        if ($this->maxLength > 20) {
            $this->maxLength = 20;
        }
        $length = mt_rand($this->minLength, $this->maxLength);

        $letters = &#39;1234567890123456789012&#39;;
        $vowels = &#39;aeiou&#39;;
        $code = &#39;&#39;;
        for ($i = 0; $i < $length; ++$i) {
            if ($i % 2 && mt_rand(0, 10) > 2 || !($i % 2) && mt_rand(0, 10) > 9) {
                $code .= $vowels[mt_rand(0, 4)];
            } else {
                $code .= $letters[mt_rand(0, 20)];
            }
        }
        return $code;
    }
}
클래스 파일이 성공적으로 생성되었습니다.

그럼 컨트롤러 구성을 바꿔보세요

&#39;captcha&#39; => [
    &#39;class&#39; => &#39;yii\captcha\Newcaptcha&#39;,
    &#39;maxLength&#39; => 5,
    &#39;minLength&#39; =>5
],
자, 변경이 완료되었으니 효과를 볼까요!

🎜🎜🎜🎜Yii 프레임워크에 대한 더 많은 지식은 관련 🎜프로그래밍 학습 과정🎜을 시청하시면 됩니다! ! 🎜

위 내용은 yii2 인증 코드 스타일을 설정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.