トップ 差分 一覧 Farm ソース 検索 ヘルプ RSS ログイン

BugTrack-plugin/347

ページの作成や編集にはユーザ登録が必要です。

ASCII CAPTCHA付きコメント欄

  • 投稿者: matto
  • カテゴリ: 新規
  • 優先度: 普通
  • 状態: 提案
  • 日時: 2007年06月14日 11時39分55秒

 内容

スパムコメントがうっとおしくなってきたので、ASCII文字のみで表示するCAPTCHAを試作しました。(サーバの都合でGDが入れられなかったもので)

X11に同梱されているBDFフォントの字形を利用し、CPANのFont::BDF::Readerを使ってASCIIアートに変換しています。Perlのみで動きます。文字が大きすぎる場合はCSSで文字サイズを調整して下さい。

ソースと使用例

  • ttp://www2.chem.nagoya-u.ac.jp/theochem/wiki/wiki.cgi/matto?page=ASCII+Captcha から、asciicaptchacomment.tar.gz
  • 添付ファイルaccomment.tar.gz(768)をダウンロードして下さい。X11のHelveticaフォントを含んでいます。フォントの置き場所はとりあえずtmpl/にしました。

2007/10/10に、上記のaccomment.tar.gz は更新されています。下のコメント欄にたくさんあるcomment.zipなどよりも、こちらのaccomment.tar.gzが新しく、必要なファイルがすべて同梱されていて便利です。

使用例

http://www2.chem.nagoya-u.ac.jp/theochem/wiki/wiki.cgi/matto?page=ASCII+Captcha

CSSの設定

上記使用例の画像の設定はこんな感じ。

pre.asciicaptchacomment {
 font-family:monospace !important;
 line-height:1.0em;
 font-size:30%;
 width:50%;
 color:#4444FF;
}

ライセンス

プラグインのプログラムソースのライセンス形態はGPLです。その他のPerlライブラリはPerl言語と同じライセンスです。フォントはBSDライセンスのようですが、確認がとれていません。心配でしたら、サーバにインストールされているX11用のPCFフォントからpcf2bdfを用いて各自生成して下さい。

 コメント

  • 試しに設置してみましたがコメントを記入しようとすると「不正なアクションです。」が出て動きません。そもそも上記のダウンロードのページに設置してあるのも同じエラーが出て動きません。 - 名無しさん (2007年07月18日 21時16分45秒)
  • とりあえず、上記のダウンロードのページから落としてきたファイルの、CommentHandler.pmの51行目が、以下のように「)」が一つ多くなってるのを見つけました。 - 名無しさん (2007年07月21日 16時21分14秒)
if($session && $answer eq $captcha && $page ne "" && $message ne "" && $count ne "") ){
  • でも、これを修正してもうまく動きません(CAPTCHAの5文字を入れてもコメントが追加されない)。そこで、asciicaptchacommentはもともとcommentをパクって作られたと思われるため、commentのソース(CommentHandler.pm)に最低限の修正を入れたモノを作ってみました。commentプラグインを上書きする形になります。上記ダウンロードのページの指示通りにインストール後、本ページに添付されているcomment.zip(683)を展開し./plugin/comment/に上書きしてください。そうするとうまく動作することを確認しました。 - 名無しさん (2007年07月21日 16時28分47秒)
  • こんな方法しか思いつきませんが、asciicaptchacommentがきちんと修正されることを望みます。 - 名無しさん (2007年07月21日 16時31分54秒)
  • captchaの正解をCGI::Sessionで受け渡ししているのですが、どうもページの編集権限がないとうまくいかないようです。仕方がないので、md5で暗号化してページに埋め込むようにしました(機械には(人間にも)わからないだろうということで)。comment2.zip(712)を、上記のcomment.zip同様にインストールすればOK。 - 名無しさん (2007年07月22日 09時58分56秒)
  • 上書き版pcomment.zip(670)と、そのmd5版pcomment2.zip(665)も作ってみました。 - 名無しさん (2007年07月22日 11時15分30秒)
  • 本ページに添付したmd5版commentプラグインmd5版pcommentプラグインの動作確認用ページを作成しました。 - 名無しさん (2007年07月23日 22時16分27秒)
  • こんな感じが一番見やすい気がする、鴨。.asciicaptchacomment{ font-family:monospace !important; line-height:2.5px; font-size:4px;} - kitta (2007年07月24日 22時13分21秒)
  • 既存のプラグインの上書きはひどいかなと思い、名前をちょっとだけ変えて(でもなぜか動かないasciicaptchacommentではない名前ということで)accommentとacpcommentを作成してみました。やはり、まず上記の「ソースと使用例」に記載のページからasciicaptchacomment.tar.gzをダウンロードしてインストール後、accomment.zip(718)、acpcomment.zip(674)をインストールしてください。 - 名無しさん (2007年09月12日 22時36分18秒)
  • 投稿しっぱなしで忘れている原作者です。名無しさんありがとうございます。 - matto (2007年10月09日 11時41分54秒)
  • 僕も名無しさん版を入手しました。完成度高いですね。おそれいります。うちでも使わせてもらいます。(^^) - matto (2007年10月09日 12時32分58秒)
  • mattoさんへ。できましたら、accomment、acpcommentが含まれたtarballをご用意いただければなあ、と思います。インストールが面倒ですので。 - 名無しさん (2007年10月10日 06時33分33秒)
  • 完成度も何も、mattoさんのコードをちょっぴり改変したに過ぎません。ASCII文字のみでCAPTCHAを表示するプラグインというアイデアがすばらしいと思います。 - 名無しさん (2007年10月10日 06時38分38秒)
  • asciicaptchacommentの元ソースは除外(プラグイン名が長すぎる)し、名無しさんのソースを加えて再tarball化したものを置いておきます。 - matto (2007年10月10日 23時46分14秒)
  • perl のバージョンが5.6 を使用している環境だったためか、Reader.pm 内のuse 5.008; と記載されている部分をコメントアウトしないと使用できませんでした。 - 名無しさん (2007年10月26日 14時13分30秒)
お名前: コメント: