일반적으로 인증 코드로 알려진 보안 문자(Complete Automated Public Turing test to Tell Computer and Humans Apart, 줄여서 CAPTCHA)는 컴퓨터와 인간을 구별하는 공개 완전 자동 프로그램입니다. CAPTCHA 테스트에서 서버 역할을 하는 컴퓨터는 사용자가 대답할 질문을 자동으로 생성합니다. 이 질문은 컴퓨터에 의해 생성되고 판단될 수 있지만 이에 답할 수 있는 사람은 오직 인간뿐입니다. 컴퓨터는 CAPTCHA 질문에 답할 수 없으므로 질문에 답하는 사용자는 인간으로 간주될 수 있습니다.
Yii Framework는 인증 코드를 지원하기 위해 CCaptcha 및 CCaptchaAction 클래스를 제공합니다. 이 기능에는 Yii의 요구 사항 애플리케이션을 통해 쿼리할 수 있는 PHPGD 확장 지원이 필요하다는 점에 유의해야 합니다.
경고가 표시되면 GD 확장 라이브러리를 설치하고 PHP.ini를 수정하여 이 기능을 활성화할 수 있습니다.
CCaptcha는 GD 라이브러리 설치 여부를 감지하는 CCaptcha::checkRequirements() 메소드도 제공합니다.
이 예제는 Yii Framework Development Tutorial (16) UI Component StarRating 예제를 수정하여 Captcha 기능을 추가합니다. 입력된 인증 코드가 올바른 경우에만 사용자 등급이 유효하며 자동 기계 등급이 적용되지 않습니다.
먼저 DataModel을 수정하고 사용자가 입력한 확인 코드를 저장하기 위해 verifyCode 속성을 추가한 다음 여기에 CCaptchaValidator 확인을 추가합니다.
class DataModel extends CFormModel{public $rating;public $verifyCode; public function rules(){ return array(array('rating,verifyCode', 'safe'), array('verifyCode','captcha','allowEmpty'=>!CCaptcha::checkRequirements()),); }}
그런 다음 SiteController를 수정하고 작업 메서드를 추가합니다. Captcha 구성 요소는 기본적으로 CCaptchaAction을 사용하며 기본 ID는 captcha입니다.
public function actions() { return array( 'captcha'=>array( 'class' => 'CCaptchaAction', )); }
이제 보기에 Captcha 구성 요소를 추가할 수 있습니다:
beginWidget('CActiveForm'); ?> errorSummary($model); ?>widget('CStarRating', array('model'=>$model,'attribute'=>'rating','name'=>'rating','value'=>3,)); ?> label($model,'verifyCode') ?> widget('CCaptcha'); ?>textField($model,'verifyCode') ?> endWidget(); ?>
위는 PHP 개발 프레임워크 Yii 프레임워크 튜토리얼(20) UI 구성 요소 Captcha입니다. 예제 내용, 더 많은 관련 내용을 보려면 PHP 중국어 웹사이트(www.php.cn)를 주목하세요!