PHPの便利な小技 PHPで使える便利な小技などのご紹介

ひらがな対応の画像認証を作ってみました

2014年12月28日
この記事は掲載から1664日経過しています。
情報が古い可能性が有りますのでご了承下さい

会員登録やパスワードリマインダーなどでよく見かける画像認証ですが、ひらがなに対応したものを作ってみました。

サンプル

ダウンロード

設定

ImageAuthentication.php

[php]
/*
* 画像認証に使う文字列
* おすきなものを有効にして下さい
*/
$font_Text = ‘あいうえおかきくけこさしすせとたちつてとなにぬねのはひふへほまみむめもやゆよわん’;
//$font_Text = ‘あいうえおかきくけこさしすせとたちつてとなにぬねのはひふへほまみむめもやゆよわんABCDEFGHIJKLMNOPQRSTUVWXYZGabcdefghijklmnopqrstuvwxyz’;
//$font_Text = ‘あいうえおかきくけこさしすせとたちつてとなにぬねのはひふへほまみむめもやゆよわんばびぶべぼがぎぐげごだぢづでど’;
//$font_Text = ‘ABCDEFGHIJKLMNOPQRSTUVWXYZGabcdefghijklmnopqrstuvwxyz0123456789’;

/*
* 何文字表示するか
*/
$font_Len = 8;

/*
* 画像の縦横サイズ *文字数に応じて調整
*/
$img_Width = 290;
$img_Height = 75;

/*
* ラインを何本引くか
* 最大50本程度。あまり多いと読めなくなります。
*/
$line_Len = 25;

/*
* 点を何個描写するか
* 1万~3万程度。あまり多いと読めなくなります。
*/
$ten_Len = 10000;
[/php]

文字自体もサイズを変えたり斜めにしたりなどしていますが、、GDでラインと点を描写し、より読み取りにくくしています。

文字の記憶領域に関して

生成された文字列はsessionに記録しています。

[php]
if( $_POST["ImageNinsho"] == $_SESSION["ImageAuthentication"]){

}
[/php]

$_SESSION["ImageAuthentication"]として記録されますので、check.phpのサンプルを参考にして下さい。その他、jQueryでその場で確認する為のコードも同封されています。

フォントに関して

http://typingart.net

Typing Art様からお借りしました。この場を借りて厚く御礼申し上げます。ライセンスはIPAフォントに準じるとの事ですので、同封させて頂いております。ImageAuthentication.phpはMITライセンスですが、フォントに関してはこれに含まれませんのでご注意下さい。

その他、こちらのフォントも良さそうなのですが、再配布は禁止との事で参考までにどうぞ。

 
  • このエントリーをはてなブックマークに追加
  • LINEで送る

PAGE TOP