컨트롤러 구성, 모델 규칙 구성, 뷰 구성의 세 가지 측면으로 나뉩니다.
1단계: 컨트롤러 구성
액션에서 다음 코드를 구성하면 요청 확인 코드 링크가 "controller/captcha"에 해당합니다.
'captcha' => [ 'class' => 'yii\captcha\CaptchaAction', // 'backColor'=>0x000000,//背景颜色 'maxLength' => 4, //最大显示个数 'minLength' => 4,//最少显示个数 'padding' => 5,//间距 'height'=>45,//高度 'width' => 75, //宽度 // 'foreColor'=>0xffffff, //字体颜色 'offset'=>4, ],
2단계: 모델 규칙을 구성합니다. 즉, 구성을 확인합니다.
먼저 공용 변수를 선언하고
public $verifyCode
두 번째로 규칙 메서드에서 확인을 구성합니다.
['verifyCode', 'captcha','captchaAction'=>'user/captcha','on' => ['login']]
이 구성에서는 구성, 즉 컨트롤러의 경로에 "captchaAction"이 추가됩니다. site/captcha 라우팅으로 이동합니다. 이것이 프레임워크 샘플의 라우팅입니다.
3단계: 뷰에서 구성
ActiveForm에 다음 코드를 추가합니다.
<?= $form->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);
php 중국 웹사이트, 다수의 무료 yii 입문 튜토리얼, 온라인 학습을 환영합니다!
위 내용은 yii 자체 인증코드 사용방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!