いわゆるボットと呼ばれるようなコンピュータープログラムによる自動フォーム送信を、本物の人間の手によるものと見分けてそれをブロックする方法としては CAPTCHA がありますが、CAPTCHA というのは場合によっては使いにくいものでもあります。CAPTCHA の文字の識別が困難な人もいますし、そもそも CAPTCHA が嫌いだという人も多いのです。それから CAPTCHA を使うためにはサーバーに画像処理ライブラリがインストールされている必要がありますが、そうではないサーバーを使うしかない場合もあるでしょう。
もっとシンプルな方法を使ったほうが都合がよい場合もあります。クイズの機能を使えば、人間なら答えられそうな質問と答えを考えるだけで、CAPTCHA と同等の役割を実現することができます。
たとえば次のようなタグをフォームに埋め込んだとしましょう:
[quiz capital-quiz "The capital of Japan?|Tokyo"]
パイプ文字 (‘|’) より前 (The capital of Japan?) が質問で、パイプより後 (Tokyo) が期待される答えとして扱われます。

地理より算数が好きなら次のような質問をしてもよいでしょう:
[quiz math-quiz "12+48=?|60"]
質問と答えは何でも構いません。正しい答えを入力しないとフォームを送信できません。
次のように質問と答えのペアを複数並べると、そのうちのひとつが毎回ランダムに選ばれて使用されます:
[quiz random-capital-quiz "The capital of Japan?|Tokyo"
"The capital of France?|Paris"
"The capital of Madagascar?|Antananarivo"]
| オプション | 使用例 | 説明 |
|---|---|---|
| (サイズ)/(最大長) | 40/10020//50 |
フィールドのサイズと最大長。片方を省略することも可能。 |
| id:(id) | id:foo |
input 要素の id 属性値。 |
| class:(class) | class:bar |
input 要素の class 属性値。2個以上のクラスを設定する場合は複数の class: オプションを [quiz capital-quiz class:y2008 class:m01 class:d01 "The capital of Japan?|Tokyo"] のようにして並べる。 |
| tabindex:(num) | tabindex:10 |
input 要素の tabindex 属性値。 |
例:
[quiz capital-quiz 10/20 id:qatest "The capital of Japan?|Tokyo"]
タグジェネレーターでクイズタグを生成する際は、問答のペアをクイズの欄の1行に1ペアずつ書いてください。

日本語
英語 
Comments are closed.