既存サイトへの統合の容易さという観点から見た場合、capictchaとCaptcha PHPの間に位置しているのがKCAPTCHAである。KCAPTCHAにも、正しいCAPTCHA文字列をユーザーが入力したかを確認するための機能は用意されているものの、このチェック機能はCaptcha PHPのPHP用APIのような扱いやすい形では提供されていない。つまりKCAPTCHAはフォーム中に設けるCAPTCHAイメージと入力フォームを1つのセクションとして丸ごと生成してくれる訳ではなく、その辺の処理は自分で対処する必要がある。
今回わたしが試用したのはKCAPTCHAのバージョン1.2.5である。ただしこのtarボールをダウンロードするにはメールによる確認を伴うphpclasses.orgへの登録が必要となるが、そうした手続きを煩わしいと感じる場合は、先に紹介したいずれかのソリューションを利用すべきかもしれない。なおtarボールの展開はカレントディレクトリにて実行されるので、あらかじめDocumentRootの下層にkcaptchaという名称のサブディレクトリを新規に作成しておき、そこにtarボールを移動しておく方がいいだろう。
このユーティリティはindex.phpファイルにてCAPTCHAイメージを生成する仕様になっており、example.php.はそのサンプルファイルである。また本パッケージによるCAPTCHAの生成と検証はPHPセッションにて行われ、KCAPTCHAを使用する上でPHPファイルにinclude()を記述しておく必要はない。この方式のデメリットは、後記に示したサンプルのように、ユーザーが正しいCAPTCHA入力を行っているかを_SESSIONにて直接テストする検証用コードを自前で用意しなければならない点である。
<form ...>
...
<img src="https://image.itmedia.co.jp/enterprise/articles/0804/16/index.php?<?php echo session_name()?>=<?php echo session_id()?>"><
...
</form>
...
if(isset($_SESSION['captcha_keystring'])
&& $_SESSION['captcha_keystring'] == $_POST['keystring'])
{
... ok ...
}
Copyright © 2010 OSDN Corporation, All Rights Reserved.