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

コンピュータと人間を区別する完全に自動化された公開チューリングテストである「CAPTCHA」 は多くのWebフォームで目にすることができる。本稿では、PHPでCAPTCHA機能を実装するために利用可能な3つのアプリケーションを比較する。

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

 現在多くのWebフォームでは、個々のユーザーが行うべき登録手続きをコンピュータによって自動処理されるのを防止する機構として、CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart:コンピュータと人間を区別する完全に自動化された公開チューリングテスト)と呼ばれるシステムが利用されている。ここで言うCAPTCHAとは、Webフォームの入力フィールドにインプットさせる文字と数字からなるテキストを意図的に歪ませたりバックグラウンドにノイズを混入させたイメージ(画像)として画面上に表示させることで、人間だけがイメージとして示されたテキストを読み取れるようにしたシステムである。本稿ではPHP WebサイトにCAPTCHA機能を追加する場合を想定し、そうした用途に利用可能な3つのアプリケーションを比較する。

 多くのCAPTCHAツールはイメージ作成をgdで、フォント処理をFreeTypeでまかなっている。FreeTypeおよびgdが各自のPHPインストレーションにてサポートされているかを確認するには、コマンドライン上で「php -i」を実行してPHPのコンパイルに使われた./configure行をチェックすればいい。サポートされている場合は設定オプションが「--with-gd」とされているはずである。gdのサポートはPHP本体とは別パッケージとなっている場合もあるが、PHPランタイムにてgdが使用可能となっている場合は、後記に示した「php -i」の出力例にあるようにgdという表示に続いて設定情報の行が出力されるはずである。

$ php -i

...

gd


GD Support => enabled

GD Version => bundled (2.0.34 compatible)

FreeType Support => enabled

FreeType Linkage => with freetype

FreeType Version => 2.3.5

...


 本稿で取り上げる3つのプログラムの1つであるcapictchaの場合、Fedora 8で動作させるに当たってはphp-gdパッケージのインストールとApacheのリスタートが必要だった。なおcapictcha-0.3.phpに「error_reporting(E_ALL);」を設定しておくと、PHPからgdにアクセスできない場合は/var/log/httpd/error_logファイルにて後記に示したようなエラーが報告されるようになる。その場合はPHPでサポートさせるgdないしFreeTypeをインストールしなければならない。

PHP Fatal error: Call to undefined function imagettfbbox()


       1|2|3|4|5 次のページへ

Copyright © 2010 OSDN Corporation, All Rights Reserved.

注目のテーマ