差分
このページの2つのバージョン間の差分を表示します。
blog:2013:2013-05-05 [2013-05-05 20:56] Decomo [その他] |
blog:2013:2013-05-05 [2015-01-06 11:51] |
||
---|---|---|---|
行 1: | 行 1: | ||
- | ====== 日本語captcha作ったった ====== | ||
- | 「ギャラクシーS3のカスタムケースあるよ」(英語)というスパムコメントが死ぬほどウザい。一晩で500件も投稿すんな!クソチョンのガラクターなんて持ってねーし、買う気もねーよksg。iPhone関連のスパムはなく、なんでガラクターだけなんだよ。ステマしてんじゃねーよトンスル民族!! | ||
- | |||
- | もうマジで**< | ||
- | |||
- | 折角なのでパッチを公開しておく。 | ||
- | |||
- | ===== 必要なもの ===== | ||
- | |||
- | * [[https:// | ||
- | * Unicode対応の日本語True Typeフォント(ライセンス的に画像化してもいいもの) | ||
- | * ↓のパッチ | ||
- | |||
- | <file diff captcha_ja.patch> | ||
- | --- a/ | ||
- | +++ b/ | ||
- | @@ -88,7 +88,7 @@ | ||
- | } | ||
- | | ||
- | } | ||
- | - $out .= ' <input type=" | ||
- | + $out .= ' <input type=" | ||
- | |||
- | // add honeypot field | ||
- | $out .= '< | ||
- | @@ -150,11 +150,18 @@ | ||
- | | ||
- | |||
- | // now create the letters | ||
- | +/* | ||
- | $code = ''; | ||
- | | ||
- | $code .= chr(floor(hexdec($numbers[$i].$numbers[$i+1])/ | ||
- | } | ||
- | - | ||
- | +*/ | ||
- | + $strTable = ' | ||
- | + $strLength = mb_strlen($strTable); | ||
- | + $code = ''; | ||
- | + for ($i=0; | ||
- | + $code .= mb_substr($strTable, | ||
- | + } | ||
- | | ||
- | } | ||
- | |||
- | @@ -203,7 +210,7 @@ | ||
- | } | ||
- | |||
- | // draw the letters | ||
- | - for ($i = 0; $i < strlen($text); | ||
- | + for ($i = 0; $i < mb_strlen($text); | ||
- | | ||
- | | ||
- | | ||
- | @@ -213,7 +220,7 @@ | ||
- | | ||
- | $y = floor($h / 2 + $cheight / 3.8); | ||
- | |||
- | - imagettftext($img, | ||
- | + imagettftext($img, | ||
- | } | ||
- | |||
- | | ||
- | </ | ||
- | |||
- | ===== 使い方 ===== | ||
- | - captchaプラグインをインストール | ||
- | - lib/ | ||
- | * ↑にある.ttfをランダムに選んで認証画像を作るので、非日本語フォントがあると正しく画像が生成されない。 | ||
- | - lib/ | ||
- | * ライセンスに注意。[[ossipedia.ipa.go.jp/ | ||
- | - 拙作パッチを当てる | ||
- | |||
- | ===== その他 ===== | ||
- | * 文字コードはUTF-8しか想定してないので、ブラウザによっては認証が通らない事があるかも? | ||
- | * $strTable を書き換える事で、認証に使う文字を変えられる。小難しい漢字や似た漢字(「博」と「愽」とか)を入れれば更に効果的かも知れない(笑) |