「文字識別」ではないCAPTCHA
こんにちは。CoCo一番のカレーを1食1辛ずつ上げていく事にチャレンジ中の亀本です。
前回6辛までいって、次回は7辛です。
さほど辛さに強くないので、そろそろ泣きそうです。ちなみに前回は食後に鼻血出しました。
今回はちょっとCAPTCHAのライブラリをあさってみました。
PHPで普通に文字画像識別によるCAPTCHAを実装するのであれば、
PEAR::Text_CAPTCHA
http://www.doyouphp.jp/sample/sample_others_captcha.shtml
や、Visual and Audio CAPTCHA
http://www.phppro.jp/phptips/archives/vol34/#1
といったものがあり、他にも
http://phpspot.org/blog/archives/2006/11/phpcaptcha.html
などでまとめられているように、数多くのライブラリが存在します。
これら文字画像識別のCAPTCHAは一般的ですが、そればかりでもつまらないので、少し変わったCAPTCHAを扱いたいなー、と思い、以下の2つのライブラリを使用してみました。
1.PEAR::Text_CAPTCHA_Numeral
http://pear.php.net/package/Text_CAPTCHA_Numeral
2つの数字による簡単な計算式を提示し、その計算結果を答えさせることで認証を行う、という仕組みのCAPTCHAライブラリです。
まずは、いつものごとくインストール
これを使って、簡単なサンプルを作成してみました。
numeral_ex.php:
このライブラリは非常に小さく、publicなメソッドは、コンストラクタを除くと
getAnswer()
getOperation()
getFirstNubmer()
getSecondNumber()
の4つしかありません。
どれも単純な命名なので、使い方は名前から想像出来ますね。
普通の数字を用いるため、このままでは強度が高いとは言えない気もしますが、画像を使用せず、しかも容易にCAPTCHA認証が組み込めるのでちょっとしたところには便利だと思います。
2.Auth_Kitten
http://labs.cybozu.co.jp/blog/tsuruoka/anubis/blog_show/46
仔猫の画像を選択することで認証を行おう、という仕組みのライブラリです。
インストールはやっぱりいつもの如く
本当ならここで仔猫画像を集めなければいけませんが、このライブラリにはデフォルトで使用する素敵な猫画像がついていますので、これをそのまま使用します。
以下に簡単なサンプルを作成してみました。
# といっても、ほぼ配布元サイトと変わりませんが。。。(^^;
kitten.php:
viewer.php(画像表示):

仔猫画像は見ていても和みますし、実際のCAPTCHAとしての機能もなかなかのものです。
もちろん独自の画像も使用できますので、仔猫に限らず好みの画像認証が可能です。
その場合には、画像の入ったディレクトリ内に
kittin/
other/
という2つのディレクトリを用意し、その中にそれぞれOKの場合とNGの場合の画像を入れます。
そして、その画像ディレクトリをsetImagePathメソッドで指定してやれば利用可能です。
なお、その際にはファイル名はできるだけ重複しないようにして下さい。
様々なCAPTCHA認証がありますが、こんな一風変わったものも存在します。
何かの折に、使ってみると面白いかもしれません。
前回6辛までいって、次回は7辛です。
さほど辛さに強くないので、そろそろ泣きそうです。ちなみに前回は食後に鼻血出しました。
今回はちょっとCAPTCHAのライブラリをあさってみました。
PHPで普通に文字画像識別によるCAPTCHAを実装するのであれば、
PEAR::Text_CAPTCHA
http://www.doyouphp.jp/sample/sample_others_captcha.shtml
や、Visual and Audio CAPTCHA
http://www.phppro.jp/phptips/archives/vol34/#1
といったものがあり、他にも
http://phpspot.org/blog/archives/2006/11/phpcaptcha.html
などでまとめられているように、数多くのライブラリが存在します。
これら文字画像識別のCAPTCHAは一般的ですが、そればかりでもつまらないので、少し変わったCAPTCHAを扱いたいなー、と思い、以下の2つのライブラリを使用してみました。
1.PEAR::Text_CAPTCHA_Numeral
http://pear.php.net/package/Text_CAPTCHA_Numeral
2つの数字による簡単な計算式を提示し、その計算結果を答えさせることで認証を行う、という仕組みのCAPTCHAライブラリです。
まずは、いつものごとくインストール
- #
pear install Text_CAPTCHA_Numeral
これを使って、簡単なサンプルを作成してみました。
numeral_ex.php:
- require_once
"Text/CAPTCHA/Numeral.php"; - session_start();
- if
(isset($_POST["answer"])&& $_POST["answer"]&& isset($_SESSION["answer"])) { $message= ($_POST["answer"]== $_SESSION["answer"])? "認証OK": "認証NG"; unset($_SESSION["answer"]);- }
- $numeral
= new Text_CAPTCHA_Numeral(); - $_SESSION["answer"]
= $numeral->getAnswer(); - <html>
- <head>
<title>Text_CAPTCHA_Numeralサンプル</title> - </head>
- <body>
<h1>Text_CAPTCHA_Numeralサンプル</h1> if (isset($message)):<p style="color:#FF0000;"> echo $message; </p> endif;<form action="numeral_ex.php" method="post"> 次の計算結果を入力してください。 echo $numeral->getOperation();<input type="text" name="answer" value="" /> <input type="submit" name="submit" value=" 認証 " /> </form> - </body>
- </html>
このライブラリは非常に小さく、publicなメソッドは、コンストラクタを除くと
getAnswer()
getOperation()
getFirstNubmer()
getSecondNumber()
の4つしかありません。
どれも単純な命名なので、使い方は名前から想像出来ますね。
普通の数字を用いるため、このままでは強度が高いとは言えない気もしますが、画像を使用せず、しかも容易にCAPTCHA認証が組み込めるのでちょっとしたところには便利だと思います。
2.Auth_Kitten
http://labs.cybozu.co.jp/blog/tsuruoka/anubis/blog_show/46
仔猫の画像を選択することで認証を行おう、という仕組みのライブラリです。
インストールはやっぱりいつもの如く
- pear
install http://labs.cybozu.co.jp/blog/tsuruoka/archives/Auth_Kitten-0.1.0.tgz
本当ならここで仔猫画像を集めなければいけませんが、このライブラリにはデフォルトで使用する素敵な猫画像がついていますので、これをそのまま使用します。
以下に簡単なサンプルを作成してみました。
# といっても、ほぼ配布元サイトと変わりませんが。。。(^^;
kitten.php:
- require_once
'Auth/Kitten.php'; - $kitten
= new Auth_Kitten(); - if
(isset($_POST['submit'])&& $_POST['submit']) { $message= $kitten->verify($_POST['kitten'])? "認証OK": "認証NG";- }
- $html
= $kitten->buildHtml('viewer.php?f='); - <html>
- <head>
<title>Auth_Kitten サンプル</title> - </head>
- <body>
<h1>Auth_Kitten サンプル</h1> if (isset($message)):<p style="color:#FF0000"> echo $message; </p> endif;<form method="post"> echo $html;<input type="submit" name="submit" value=" 認証 " /> </form> - </body>
- </html>
viewer.php(画像表示):
- require_once
'Auth/Kitten.php'; - $auth
= new Auth_Kitten(); - $photo
= $auth->drawImage(basename($_GET["f"])); - echo
$photo;
仔猫画像は見ていても和みますし、実際のCAPTCHAとしての機能もなかなかのものです。
もちろん独自の画像も使用できますので、仔猫に限らず好みの画像認証が可能です。
その場合には、画像の入ったディレクトリ内に
kittin/
other/
という2つのディレクトリを用意し、その中にそれぞれOKの場合とNGの場合の画像を入れます。
そして、その画像ディレクトリをsetImagePathメソッドで指定してやれば利用可能です。
なお、その際にはファイル名はできるだけ重複しないようにして下さい。
様々なCAPTCHA認証がありますが、こんな一風変わったものも存在します。
何かの折に、使ってみると面白いかもしれません。
コメントフォーム
トラックバック
最近の記事
- もうすぐ健康診断があるんだ・・・ [2010年09月02日 : 阿部恵]
- Photoshopで壁紙を作りながら、基本的な使い方を覚える [2010年09月01日 : 鴨田健次]
- はじめての共同作業 Canvas編 (node.js + websocket) [2010年09月01日 : 中川善樹]
- 「PHP×Flex(後編)」PHPテクニカルセミナー(無料)第4弾の募集を開始しました!! [2010年08月26日 : 和田記光]
- 【HTML5】Canvasでお絵かきしてみた(前編) [2010年08月25日 : 橋本章史]
- MacにgroongaのMySQL用ストレージエンジン [2010年08月23日 : 笹亀弘]
- Appleのサイトで見たiPhone4をFireworksで描いてみました-1/2 [2010年08月19日 : 和田記光]
- iPad版の会社紹介を作ってみました [2010年08月19日 : 小林有佳]
- iPhoneアプリ開発開始時に気をつけるべきファイルの取り扱い (2) [2010年08月19日 : 亀本大地]
- symfonyセミナー動画無料公開! [2010年08月13日 : 岡本雄樹]



最近のコメント