MT4のcaptchaがうまくいかない

MT4の新機能、captcha。
captchaというのは、文字列が書かれた画像を正しく入力できているかという認証方法のこと。人が見て入力しないと駄目で、機械では読み取れなくなっています。機械が送ってくるスパムの防止に効果が高い認証方法です。まぁ、詳しいことは「captcha」で検索して、きちんとした用語集を見て下さい。

それで、MT4では、プラグイン入れなくても、それがデフォルトで入っています。便利で素敵なことだとおもってたんですが、なんか表示されない。んで、検索してみたら、fakelife -kalze’s blog- MovableType4のcaptchaでハマったが見つかりまして、参考にさせていただきました。

MT4のcaptchaがうまくいかない時の手順としては、

  1. Image::Magickが正しくインストールされているか確認。mt-check.cgiでチェックするのがいいですね。
  2. ブログの設定のコメント設定でCAPTCHAプロバイダを確認。プルダウンが表示されていたら成功。MovableType規定を選択。
  3. エラーが表示されていたら、mt-config.cgiに
    CaptchaSourceImageBase 絶対パス

    を追加。

これで、表示される。ということだったんですが、表示されない。画像がデットリンクになってしいます。
アッレー?と思って、死んでる画像のプロパティを見てみましたら、http://blogname/mtmt-comments.cgi/captcha/———————-と出ます。…mt-commentsの前にスラッシュないじゃんかよ!なんだそりゃッ!?
ちなみに、mt-commentsの前にスラッシュを入れてURL直打ちすると、きちんとcaptchaは表示されました。
ということは、mt-config.cgiに記述した絶対パスは合ってます。
モジュールテンプレートのコメント入力フォームでcaptchaを表示させてる記述がおかしい、とアタリをつけてテンプレートを見ても、テンプレート自体にcaptchaを呼び出してる気配がありません。
というわけで、、fakelife -kalze’s blog- Captcha 部分のバグ修正とデザイン変更を参考に、「lib/MT/Util/Captcha.pm」の59行目に手を加えました。

<img src="$cgipath$commentscript/captcha/$blog_id/$token" mce_src="$cgipath$commentscript/captcha/$blog_id/$token" width="150" height="35" />

ここの$cgipath$の後ろにスラッシュ追加。

<img src="$cgipath/$commentscript/captcha/$blog_id/$token" mce_src="$cgipath/$commentscript/captcha/$blog_id/$token" width="150" height="35" />

これで無事表示されるようになりました。
デフォルトで入ってるくせに、実際使えるようになるまで手間かかりすぎ…。
一応システムファイルいじるときはバックアップとりましょう。怖いから。

トラックバックURL

コメント

この記事のコメント・トラックバックRSS

コメントする

管理人にのみ公開されます

使用できるXHTMLタグ: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

このページの先頭に戻る