無料スクリプトならphp.to

PHPスクリプト無料配布所 :: PHP.TO







アクセスアップ・上位表示ならSEO.CUG.NET
安くて早い!SEOに強いコーディング代行サイト AcodeZ(アコーズ)
無料スクリプトならphp.to PHPスクリプト無料配布!php.to
リンクはご自由に


0007. captchaの作成方法
<< 0006. ファイルを添付してメールを送信する方法
「captcha」と言ったところで、分かる人は少ないかもしれません。
そこで、「画像認証」とでも言えば、「ああ、あれか」と思っていただける方が多いのではないかと思います。

captchaのサンプル画像
そう、こんなのですね。

例えば、Googleのサイトの登録Googleのサイトの登録の情報へ などで使われている、ランダムな文字列を表示し、かつ、それに対して適当なノイズを入れたり、歪ませるなどして画像を自動識別しにくくし、「操作している側が人間かどうか」を判定するために使われる技術です。
(詳しくは、WikipediaのCaptchaWikipediaによるCaptcha情報を参照 の項をご覧ください)

PHP用のモジュールとして、PEAR::TextのText_CaptchaPEAR::TextのText_Captchaの情報へ で公開されているようですが、環境に依存するつくりになっていることと、多くのcaptchaはセッションを使っていることが多いため、cookieを使えない環境のためにセッションを使わないで再現できるcaptchaを作成してみました。(需要があるかどうかは謎ですが…)

あえてポイントを挙げるなら、あえて一定のアルゴリズムで算出したキーを乱数の種(random seed)とすることで、入力値が同じであれば、作成される文字列を固定させています。
ただし、キーが単一にならないよう、下記のロジックを組み込んであります。

 1. 通常は一般閲覧者には非公開である(と思われる) 環境変数を用いて、環境に依存した値を加えたものにMD5MD5のマニュアルへ 演算を行い、キー値を算出するようにしている
 2. キーの算出時に日時情報を含めることにし、かつ、この日時情報を元に、画像の有効期間を一定期間のみとさせ、ブルートフォース対策としている

難しくはないので、詳しくはソースを読んでください。
(実行にはGDおよびJPEG/PNGライブラリのインストールが必要です)
⇒ Captchaのサンプル
⇒ Captchaソースのダウンロード

>> 0008. captchaの作成方法(マルチバイト版)
track back URL : http://php.to/tips/7/trackback/

コメント

コメントはまだありません


よろしければコメントをどうぞ ※spam防止のため、半角英数字のみの投稿はできません
お名前(必須):
URL:
コメント(必須):

パソコンメーカーのデル
XPS 15z
Vostro 3750

- SEO.CUG.NET :: スクリプト配布チーム -