Ogawa::Memoranda のogawa さんが、MovableType で使えるCAPTCHA プラグインを公開されています。こちらはセッション毎にテスト画像が変化するので、スパムボット弾きとしての効果は Tiny Gimpy よりも格段に上です。それに何より使う側である人間も安心できますし。
コメントで少しやり取りをさせて頂いたのですが、テスト画像とテキストフィールドのデザインを変更したいと思った時に、多少なりに JavaScript の知識が必要となる点が気になります。可能であれば HTML が触れるくらいのスキルで、自由にデザインが変更できれば嬉しいかもしれません。
ogawa さんのオリジナルcaptcha_js.cgiを少し改造します。ソースコード後半部分にある <<EOD;
から EOD
の部分が変更されています。
print $q->header('text/javascript'); print <<EOD; function captcha_E(id) { return document.getElementById (id); } var captcha_e; if (captcha_e = captcha_E ('captcha_image')) with (captcha_e) { src = '$url/images/$captcha_md5.png'; width = $captcha_img_width; height = $captcha_img_height; } if (captcha_e = captcha_E ('captcha_md5')) with (captcha_e) { value = '$captcha_md5'; } if (captcha_e = captcha_E ('captcha_code')) with (captcha_e) { size = $captcha_length; maxLength = $captcha_length; } EOD
コメント投稿フォームにも改造が必要です。今まで captcha_js.cgi が生成していた CAPTCHA テストの部品を自前で追加する必要があります。
注意する点は、各フィールドに指定された id (captcha_image、captcha_code、captcha_md5)を忘れずに振ってください。
<img id="captcha_image" src="dummy.gif" alt="CAPTCHA Image"/><br /> コメントを投稿する前に上の画像の文字を正しく入力してください: <input id="captcha_code" name="captcha_code" type="text"/> <input id="captcha_md5" name="captcha_md5" type="hidden"/> <!-- ↑この部分は単なる HTML なので自由に編集できます --> <script type="text/javascript" src="<$MTCaptchaJsURL$>"></script>
機能面では何ら変更はありません。あと、デザイン修正が JavaScript 上で行える人には、今回の改造はあまり意味がありません(^^;
改造前に、CAPTCHA 関係のフォーム生成を captcha_js.cgi に全て任せていたところを、先ずフォームの外枠だけを HTML で用意しておいて、最後に kbd>captcha_js.cgi が下準備をするようにしました。その分、幾つか ID 指定が必要になったりしたものの、"デザイン"と"機能"を分離する(なんて書くとカッコイイ)ことができたと思います。