前の記事 ≪:CSSを使い、1枚の画像だけでカラフルなグラデーション背景を作る例
次の記事 ≫:チュートリアルに特化したソーシャルブックマーク「tutorialicious」

PHPで使えるCAPTCHA画像作成ライブラリまとめ

2006年11月20日-はてなブックマーク

スポンサード リンク
[PR] 英単語を忘却曲線アプリを使って超効率よく記憶する方法

PHPで使えるCAPTCHA画像作成ライブラリはいろいろあって分かりにくいので以下にまとめてみました。
最近ではスパムが多すぎて、掲示板等へのCAPTCHA実装は必須のように思えます^^;

CAPTCHA (GPLライセンス)

サンプル利用方法
1. パッケージダウンロード
2. パッケージ解凍後、同じディレクトリにフォント(*.ttf)ファイルを設置
3. captcha.class.php を開く
   (2)で配置したフォントのファイル名を変数に設定
   $this->Font = './〜.ttf';
4. example.php にアクセス

CAPTCHA 2 (GPLライセンス)

サンプル利用方法
 1. パッケージダウンロード
 2. パッケージ解凍後、同じディレクトリにフォント(*.ttf)ファイルを設置
 3. captcha.class.php を開く
    (2)で配置したフォントのファイル名を変数に設定
    $this->Font = './〜.ttf';
 4. example.php にアクセス

CAPTCHA X (GPLライセンス)

サンプル利用方法
 1. パッケージダウンロード
 2. fonts ディレクトリにフォントを配置
    組み合わせたいフォントを複数指定可能
 3. captcha_x.ini で設定
    fonts の設定部分に設置したフォントの拡張子を除いた部分をカンマ区切りで複数指定
    fonts = arial,georgia
    ini ファイルによって、CAPTCHAの画像サイズなどその他の設定が可能
 4. index.php にアクセス

HN CAPTCHA (GPLライセンス)

サンプル利用方法
 1. パッケージダウンロード&解凍
 2. 解凍したディレクトリに tmp, font ディレクトリを作成
 3. font ディレクトリの中にttfファイルを設置(複数設置可能)
 4. hn_captcha.example.php を開く
    $CAPTCHA_INIT 変数の次の行を書き換える
    'tempfolder'     => './tmp/', // 一時フォルダの指定
    'TTF_folder'     => './font/', // フォントを設置したディレクトリの指定
    'TTF_RANGE'      => array('arial.ttf', 'georgia.ttf'), // 3で設置したファイル名を配列で定義
    その他、必要に応じて設定を変えられます。
  
    'noise' => TRUE にするとノイズがはいってより機械的に読み取るのを困難にします。
 5. hn_captcha_example.php をブラウザで開いて動作確認

KCAPTCHA (LGPLライセンス)

サンプル利用方法
 1. パッケージダウンロード&解凍
 2. example.php にアクセス
    動くものが確認できる
 3. kcaptcha_config.php にて設定
    そのままだと画像にクレジット(www.captcha.ru)が入ってしまうので次のようにしてこれを消すことが可能
    $show_credits = false;
    $credits = '';
    その他にも幅や高さなど各種設定が可能
    尚、ここでの変数名はクラス内でrequireされるため、グローバル領域を使うことはない

PHP CAPTCHA (BSDライセンス)

利用法割愛

PEAR::Text_CAPTCHA (PHPライセンス)

サンプル利用方法
拙著参考

※尚、リンク先のPHP Classesはログインしないとダウンロード等ができないので、使用する場合はアカウント軽くをここで作ってログインしておくとよいでしょう。

最後に一通り使った上でレビューしてみます。

・CAPTCHA, CAPTCHA 2は単に画像を出すようなシンプルなものです。
・PHP CAPTCHAは使い勝手があまりよくありません。

使うとなると次の3点のうちが妥当です。
・CAPTCHA X
・HN CAPTCHA
・KCAPTCHA
・Text_CAPTCHA

実装容易性で言えば次の順です。
1.KCAPTCHA
2.Text_CAPTCHA
3.CAPTCHA X
4.HN CAPTCHA

個人的にはKCAPTCHAが最も使いやすくて良いと思いました。
作成される画像がそれぞれ違うのであとは好みに応じてというところでしょうか。

関連の記事検索:PHP, captcha
スポンサード リンク

By.KJ : 2006年11月20日 11:01 livedoor Readerで購読 Twitterに投稿

間違いの指摘をしていただける方はメール、あるいはTwitter/FBでお願いします(クリック)