MT4の話ですいません。どなたか情報があれば。
サーバを引っ越しし、少しだけテンプレートに手を入れただけなのですが、昨日からコメントが反映出来ません。コメントを投稿することにはエラーは何も出ていません。パケットキャプチャーで見てみると、正常にコメントは対象となるブログ記事に対してPOSTはされており、サーバ(MT)からも正常終了(HTTP-200)が返ってきてます。でもコメントは記録されず、DBの中にも入っていません。何が起きてるのかな...
どなたかアドバイスがあればよろしくお願いします。コメントの認証は無し、メールアドレスはありにしています。エラーが何も出てないのが不思議です。

自信ないですが、MT内部で弾かれるなどのエラーの戻りって、ステータスとしては正常終了(200)じゃないでしょうか。
実際に何という内容が返ってきてるかを確認する必要があると思います。
私はよく、Ajaxによるポストの確認で、Firebugを使ってサーバーからの応答を確認したりするのですが、MTがエラーを返すときも、ステータスとしては200が返ってました。中身を確認すると、MTのエラー内容が返ってきてます。
ご返信、ありがとうございます。確かに200はApachが返すので、MT内部でエラーでも200になるのかもしれませんね。パケットキャプチャーを見る限り、POSTする際の駆動メソッドは /cgi-bin/mt/mt-comments.cgi にはなってますね。MTのログには無いも残っていません。困ったもんだな〜 エラーが出てくれれば追いかけようもあるのですが。
例えばスパムコメントとして認識したコメントを弾くこと自体は、MTにとってはエラーではなく、正しい動作なので、200でもおかしくない気がします。実際にどのレベルで、処理されていないのかは解らないですけど。
どちらにしても、「サーバを引っ越し」か「少しだけテンプレートに手を入れた」がキーになっているものと思います。
こういう時は基本の、デフォルトテンプレートで動作確認あたりから、つぶしていくしか無さそうな気がしますよ。
サーバの引っ越しはいろいろあったけど無事に終り、しばらくそのまま動いてたんですよね〜 で、コメント欄に対するスパムが凄過ぎて(これはサーバ引っ越し前から)、Comment FormのところにMT-Keystrokesというプラグインを入れました。でもうまく行かないのでそれは戻しました。おかしいな〜 どこかにエラーが記録されれば追えるんですけどね。POSTも普通に終わってまして... またトライしてみます! ありがとうございました。
>Kei.Katayamaさん
MT-Keystrokesプラグインは、テキストエリアにフォーカスをあてると投稿時に独自のinput要素に'1'を設定し、その値をコールバック側でチェックするようですね(スパムではテキストエリアにフォーカスをあてられないので'1'が設定できない)。
で、念のため確認です。
このプラグインはMT3でしか動作しないようにソースコードにバージョンチェックが入ってますが、その部分はコメントアウトされているのでしょうか(プラグインをMT4.27にインストールしてみたところ、バージョンチェックが入っていると<$MTKeystrokes$>タグを挿入したテンプレートの保存でエラーになりました)。バージョンチェックをコメントアウトした状態であればプラグインはMT4でも正常に動作するようです。
また、コメントの内容に「それ(MT-Keystrokes)は戻しました」とありますが、他に戻していないものがあれば、oscarさんのおっしゃるとおり、まずはデフォルトの状態に戻して切り分けをしてみてください。
事情があってコメント認証が使えないと推測しますが、MT4であればCAPTCHA機能が使えるはずなので、(可能であれば)それを利用するという手もあります。
MT5の話で参考になるかはわかりませんが、たまたま記事自体の「コメントを許可する」のチェックが入っていない状態でコメントをした際に、上記のような事例に近い場合がありました。
許可するのチェックの有無にかかわらずコメントフォームなどが表示される様なテンプレートになっている場合、ということになりますが。
参考になるかどうかわかりませんが、似たような情報ということで。
皆様、いろいろとアドバイス、ありがとうございます。MT-Keystrokesにバージョンチェックがあるのは知っていて、"3"を"4"に書き換えました。いまはこのプラグインの設定をはずしてますが。パケットキャプチャーで見る限り、正しい情報がPOSTされているように見えるので、受け取ったcgi(mt_comments.cgi)側で何か挙動が変なのかな〜 どちらかと言うとMTの設定を疑ってるのですが、見る限り問題はなさそうなんですけどね。旧サーバがもうほぼ閉じちゃってるのですが、何とかそこに接続して基の設定の確認もしてみようと思ってます。
何か解ったら皆様の参考にご報告しますね。それにしてもMTでエラーにならず何もしないって挙動は初めてだな〜
最終的に、理論的には説明が付きづらいのですが、Comment-Formのテンプレートを元に戻しても、なぜかMT-Keystrokesをpluginsから削除しないとダメでした。削除したらコメントを受け付けるようになりました。不思議です。何かプラグインのプロパティに残ってたのかな...
で、最終的にスパムにどう対応したかと言うと、プラグインのSpamLookupのプロパティの中のIPブラックリストのルックアップの項に「dnsbl.spamchampuru.livedoor.com」を追加し(ライブドアが中心としてアップデートしているブラックリスト)、またTypePad AntiSpamというプラグインをシステムのプラグインの方へ入れました。これでおおよそスパムは止まったように思います。
皆様、いろいろアドバイス、ありがとうございました。上記の2つの手法は割といい感じですので、取り急ぎご報告まで。
私も仕組みを理解したのは、最近なのですが、プラグインを無効にしても、実際にはそのライブラリはMTに読み込まれています。
システム情報の、「Perlのインクルードパス」に無効にしたプラグイン内の「lib」フォルダが表示されているはずです。
完全にプラグインが読み込まれないようにするには、プラグインの削除が必要です。
またプラグインによっては、DBの拡張を伴うもの(一般的にはプラグインインストール後にアップグレード処理が動く)もあります。その様なプラグインの場合、無効・削除する事で不整合が発生する場合もあります。
プラグインの設定値自体も、基本的には残ったままになります。ただしこちらは、再度同じプラグインをインストールしない限り、使われる事はありません。
なるほど! まさにそんな挙動です。無効にしても組み込まれていたような... ただし、組み込まれていたとしてもその機能をComment-Formで呼び出してないので機能しないはずなんですけどね〜
いずれにせよ、dnsbl.spamchampuru.livedoor.comとTypePad AntiSpamを組み入れて以来、スパムはすっかり止まりました。この手法は皆様にもお薦めです。認証文字列を入力させるのはどうも抵抗があるので。