ホームページ  >  記事  >  バックエンド開発  >  PHP 開発フレームワーク Yii Framework チュートリアル (20) UI コンポーネントのキャプチャの例

PHP 開発フレームワーク Yii Framework チュートリアル (20) UI コンポーネントのキャプチャの例

黄舟
黄舟オリジナル
2017-01-21 10:33:141334ブラウズ

Captcha (コンピューターと人間を区別するための完全に自動化された公開チューリング テスト、CAPTCHA と呼ばれる) は、一般に検証コードとして知られており、コンピューターと人間を区別する公開の全自動プログラムです。 CAPTCHA テストでは、サーバーとしてのコンピューターがユーザーに答えるための質問を自動的に生成します。この質問はコンピュータによって生成および判断できますが、答えることができるのは人間だけです。コンピュータは CAPTCHA の質問に答えることができないため、質問に答えるユーザーは人間であると考えられます。

Yii フレームワークは、検証コードをサポートするクラス CCaptcha および CCaptchaAction を提供します。この機能には PHPGD 拡張機能のサポートが必要であることに注意してください。これは、Yii の要件アプリケーションを通じて問い合わせることができます:

PHP 開発フレームワーク Yii Framework チュートリアル (20) UI コンポーネントのキャプチャの例

警告が表示された場合は、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 コンポーネントのキャプチャの例

上記は、PHP 開発フレームワーク Yii Framework チュートリアル (20) UI コンポーネントの Captcha の例の内容です。その他の関連コンテンツについては、注目してください。 PHP 中国語 Web サイト (www.php.cn)!


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。