Movable Type 4.1 でコメント投稿者情報が保存されない不具合について

Movable Type 4.1 でコメント投稿者情報が保存されない不具合について

Posted at February 11,2008 1:22 AM
Tag:[MovableType, Template, TroubleShooting]

Movable Type 4.1 のデフォルトテンプレート・および配布テンプレートで、コメント投稿者情報が保存されない問題が発生しています。
配布テンプレートご利用の皆様にはご迷惑をおかけして申し訳ございません。

以下、問題・原因・対処方法を記します。

1.問題

コメント投稿時に「ログイン情報を記憶」をチェックしてコメントを投稿しても、投稿者情報が保存されない(JavaScript エラーが発生)。

2.原因

Movable Type 4.1 の JavaScript(mt.js)を、正常に動作していた 4.0x の同ファイルと比較したところ、次の差分がありました。

4.0

function setCookie (name, value, expires, path, domain, secure) {
    var curCookie = name + "=" + escape(value) + (expires ? "; expires=" + expires : "") +
        (path ? "; path=" + path : "") + (domain ? "; domain=" + domain : "") + (secure ? "secure" : "");
        document.cookie = curCookie;
}

4.1

function setCookie (name, value, expires, path, domain, secure) {
    var curCookie = name + "=" + escape(value) + (expires ? "; expires=" + expires.toGMTString() : "") +
        (path ? "; path=" + path : "") + (domain ? "; domain=" + domain : "") + (secure ? "secure" : "");
        document.cookie = curCookie;
}

ということで、expires.toGMTString() が影響しているようです。

toGMTString() は、グリニッジ標準時を文字列に変換したものを返すものですが、この処理は setCookie を呼び出す前に行っています(青色部分)。

function rememberMe (f) {
    var now = new Date();
    fixDate(now);
    now.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000);
    now = now.toGMTString();
    if (f.author != undefined)
       setCookie('mtcmtauth', f.author.value, now, '/', '', '');
    if (f.email != undefined)
       setCookie('mtcmtmail', f.email.value, now, '/', '', '');
    if (f.url != undefined)
       setCookie('mtcmthome', f.url.value, now, '/', '', '');
}

3.対処

上に示した 4.0 のソースコードを参考にして、expires.toGMTString() の .toGMTString() を削除して、保存・再構築してください。

配布テンプレートは修正済です(template_4_1_utf8_1_1)。

関連記事
zenback
人気エントリー
トラックバックURL


トラックバック

MT4.1にバージョンアップ from ストレンジャー
このブログともうひとつをMovable Type 4のバージョン4.01から4.... [続きを読む]

Tracked on February 12, 2008 3:04 PM
コメント

MT4.1でブログの複製をしたら、テンプレートが何もない状態、
記事も、1つだけ残った状態で複製されるのですが、
MT4.1では、これが正常なのでしょうか?(エラー表示は出ません。)

私が現在やりたいのは、MT4.1で管理している
全てのブログの、設定の共通化です。

なので、BlogSkeletonClonerプラグインでできていたような、
テンプレートや設定のみの丸ごとコピーが必要なのですが、、、。

解決策がありましたら教えていただけると幸いです。
よろしくお願いします。

[1] Posted by ゆう : February 11, 2008 7:08 AM

早速の対応、ありがとうございました。
ご指示通り、対処しましたら できました。
ありがとうございました。

[2] Posted by chi- : February 11, 2008 2:48 PM

初歩的なことで恐縮ですが、初心者なのでお許しください。
Movable Type 3.35を使用していますが、日本語ドメインに対応させるために、ブラウザをIE6??から、IE7に変更した途端に、エントリーの位置がおかしくなってしまいました。どのようにしたら、元通りに復帰しますか?ご教授ください。

[3] Posted by satopa : February 11, 2008 4:58 PM

>ゆうさん
こんばんは。
ご質問の件ですが、明らかに動作異常に思われます。
また残念ながら当方では原因不明です。
お役に立てず申し訳ありません。

>chi-さん
こんばんは。
ご連絡ありがとうございました。
無事に直ったようでよかったです。
ではでは!

>satopaさん
こんばんは。
ご質問の件ですが、「エントリーの位置がおかしく」とは、具体的にどのような状態でしょうか?
ブラウザのバージョンアップで問題が発生したのであれば、一度IE6に戻してみるという手もあります。
いずれにしても、問題の内容がよく理解できておらず申し訳ありません。

[4] Posted by yujiro logo : February 13, 2008 2:04 AM

MT4.25で テンプレート、template_4_2_utf8_1_13_style_liquidを使わせていただいています。有難うございます。

テンプレートの問題ではないのですが、コメント回りに、プレビューや絵文字など組み込んでいくウチに、気がついたら「ログイン情報を記録」が記憶されなくなってしまったのですが、他のJavaScriptや、記述によって動作しなくなる、というのは有ることでしょうか?。

念のためクッキーの削除と、別ブログにオリジナルテンプレートを入れ試したところ、「ログイン情報」は問題なく記憶されていましたので、何処かでミスったのかと思いますが…やはり一個ずつ外して調べるしかないでしょうか。

[5] Posted by Ran : May 18, 2009 4:59 AM

>Ranさん
こんばんは。
テンプレートご利用ありがとうございます。
ご質問の件ですが、クッキーの保存はJavaScriptで行なっているので、競合等で正常に動作していない可能性が考えられます。
こちらではピンポイントで対処方法が提示できませんので、申し訳ありませんが切り分けを行なって頂ければ幸いです。
それではよろしくお願い致します。

[6] Posted by yujiro logo : May 23, 2009 1:19 AM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)