当Blogのリニューアル作業を行っていますが、新Blogでは、コメントスパム防止のために、小川宏高氏作の「Captcha」というプラグインを利用します。
このプラグインのテストをしていたときに、Movable Type 3.3のコメント投稿機能に、不具合と思われる点を見つけました。
Movable Typeでは、コメント投稿時に「Typekey」というIDを使って認証を行うことができます。
「Typekeyを使わないで投稿されたコメントは保留する」など、スパム対策などに利用することができます。
各エントリーのコメント入力フォームで、Typekeyログインしてコメントを書き、直接に投稿した場合は、問題はありません。
しかし、コメントをプレビューしてから投稿すると、問題が起こりました。
Captchaプラグインを入れた場合、コメントプレビューして投稿すると、Captchaのテストでエラーになり、Typekeyからログオフした状態になりました。
また、Captchaプラグインを使わないと、コメントをプレビューしてから投稿すると、Typekeyの情報が外れた状態でコメントが投稿され、Typekeyからログオフした状態になりました。
MTのソースを見てみると、App/Comments.pmの中の「_get_commenter_session」という処理で、Typekeyログインのチェックが行われています。
MT3.2とMT3.3でこの部分が若干異なっていて、それが原因で上で書いたような現象が起こっています。
問題の箇所は、MT3.3のApp/Comments.pmの80~82行目です(以下のリスト)。
if (!$sess_obj || ($sess_obj->start() + $timeout < time)
|| ($q->param('email') && ($sess_obj->email ne $q->param('email')))
|| ($q->param('author') && ($sess_obj->name ne $q->param('author'))))
この部分のソースを、以下のように書き換えてMT3.2と同じにすると、上の現象がなくなりました。
if (!$sess_obj || ($sess_obj->start() + $timeout < time))
この件はシックス・アパートにフィードバックしておきました。




コメントはスレッド表示になっています。
また、スレッドの先頭のコメントに対する返信には、先頭に矢印を表示しています。
私も、
「コメントをプレビューしてから投稿すると、Typekeyの情報が外れた状態でコメントが投稿され」という問題に悩んでいましたが、やはり不具合があったのですね! これですこし安心しました。「手直し」して、コメントしてみます。うまくいくかな。
>日下部理恵さん
こんにちは。
こちらでは手直しをしていないですが、リニューアル後の新Blogでは手直しをした状態にしてありますので、Typekeyでログインして正しく投稿することができます。
いつもお世話になってます。
この問題、MT-3.34では、直っていますか?
私が試した範囲では、直っていないのではと思います。
TypeKeyが外れて投稿されてしまいます。
3.34でも、ここのエントリーに書かれているように修正した方がいいですよね?
一応、私が試した範囲では、ここに書かれているように修正するとうまくいくようです。
>日下部理恵さん
こんにちは。
この問題は3.34でも修正されていませんでした。
もう一度フィードバックを出しておいた方が良さそうです。
以前より、お世話になっております(このHNではお初になりますが)。
この問題で今日丸一日頭を悩ましていましたので、本当に助かりました。
お陰様で、Typekeyにサイン・インして確認後に出る不具合を消すことができました。この問題は結構重要度が高いような気がするのですが、シックスアパートは放置なんですね
最初はOgawaさん作のCaptcha pluginとの競合か何かかと思い込んでしまい、Ogawaさんのブログに場違いな質問をしてしまったり、とにかく疲れました
まだブログを公開できる段階ではないのですが、公開したらこの件は私もエントリーにしようかと思っております。その際はTBさせていただくと思いますので、その時はよろしくお願いします。
>琉羅さん
こんにちは。
お役に立って良かったです。
MT3.34ではこの不具合は修正されていませんでしたが、次のバージョンでは修正されることを期待したいです。
>壱さん
予定より少し公開が遅れてしまいましたが、ブログを公開しましたのでトラックバックさせていただきました。
少しでもこの不具合の認知度が上がれば幸いです。
ここに(エントリー)書かれている事は、Movable Type 3.36 でも有効のようです。Comments.pm を書き換えた上でテストしましたが、「Typekeyの情報が外れる」ような事はないです。