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, 'verifyCode')->widget(Captcha::className(), [ 'template' => '<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-6">{input}</div></div>', ]) ?>
위는 인증코드를 생성하는 과정인데, 인증코드 번호가 코드에 하드코딩되어 있기 때문에 숫자가 필요한 경우에는 어떻게 해야 할까요?
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 = '1234567890123456789012'; $vowels = 'aeiou'; $code = ''; 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; } }
'captcha' => [ 'class' => 'yii\captcha\Newcaptcha', 'maxLength' => 5, 'minLength' =>5 ],
위 내용은 yii2 인증 코드 스타일을 설정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!