Captcha (コンピューターと人間を区別するための完全に自動化された公開チューリング テスト、CAPTCHA と呼ばれる) は、一般に検証コードとして知られており、コンピューターと人間を区別する公開の全自動プログラムです。 CAPTCHA テストでは、サーバーとしてのコンピューターがユーザーに答えるための質問を自動的に生成します。この質問はコンピュータによって生成および判断できますが、答えることができるのは人間だけです。コンピュータは CAPTCHA の質問に答えることができないため、質問に答えるユーザーは人間であると考えられます。
Yii フレームワークは、検証コードをサポートするクラス CCaptcha および CCaptchaAction を提供します。この機能には PHPGD 拡張機能のサポートが必要であることに注意してください。これは、Yii の要件アプリケーションを通じて問い合わせることができます:
警告が表示された場合は、GD Extend をインストールできます。ライブラリを編集し、PHP.ini を変更してこの機能を有効にします。
CCaptcha は、GD ライブラリがインストールされているかどうかを検出するメソッド CCaptcha::checkRequirements() も提供します。
この例では、Yii Framework Development Tutorial (16) UI Component StarRating Example を変更して、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 Framework チュートリアル (20) UI コンポーネントの Captcha の例の内容です。その他の関連コンテンツについては、注目してください。 PHP 中国語 Web サイト (www.php.cn)!