CAPTCHA機能を用いたWebフォーム入力を実装する3つのユーティリティPrograming Bible(3/5 ページ)

» 2008年04月16日 15時10分 公開
[Ben MartinOpen Tech Press]
SourceForge.JP Magazine

Captcha PHP

Captcha PHP Captcha PHP

 Captcha PHPの場合は単にCAPTCHAイメージを生成するだけでなく、CAPTCHA入力用のAJAXフォーム要素の作成およびユーザー入力の判定を行うためのPHP関数APIも装備されている。仮にこのAPIが提供されていない場合、CAPTCHAに表示させるテキスト文字列の生成とユーザーが正しい値を入力したかの確認はそれぞれ別途に処理させなくてはならないため、こうしたWebフォームへのCAPTCHA表示機能の追加およびユーザー入力の判定が一括で処理できる点は高く評価すべきだろう。なおCaptcha PHPのAPIを使用するには、PHPスクリプトの先頭部に「include("captcha.php");」という指定を追加しておく必要がある。

 今回わたしが試用したのはCaptcha PHPのバージョン2.0である。そのインストールについては先のcapictchaと同様、ApacheのDocumentRootでtarボールを展開しておけばいい。

 Captcha PHPによるフォーム要素の生成は、HTML FORM要素の内部での「print captcha::form();」呼び出しによって該当するAJAXコードが出力されることで行われるが、ユーザーが正しい値を入力したかの確認については、サブミットされたフォームの呼び出すPHPスクリプトから「if( captcha::solved() ) { ...ok... }」を実行させる必要がある。

 captcha::form()関数には、CAPTCHAイメージとCAPTCHA入力フィールドの間に配置させるHTMLを指定するためのオプションパラメータも用意されており、例えば後記のコードでは、CAPTCHAの表示イメージとユーザーによるCAPTCHA 文字列の入力ボックスフォームの間に登録ボタンを表示させている。

captcha::form("<small><a href="...">register</a> to avoid this check</small><br/>");


 ここで生成されるフォームはそのほかにもCSS編集を介したカスタマイズが可能で、その際に主として手を加えるのは.captchaクラスおよび#captcha IDセレクタである。詳細についてはCaptcha PHPに付属するREADMEファイルを参照してほしい。

Copyright © 2010 OSDN Corporation, All Rights Reserved.

注目のテーマ