Movable Type 4.1 でコメント投稿者情報が保存されない不具合について
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)。
- MovableTypeプラグインの独自CGIをNginxに対応させる方法
- Movable Type 5で「Got an error: Can't use 'defined(%hash)' (Maybe you should just omit the defined()?)」というエラーになる場合の対処
- 旧バージョンのMTでPerl5.26(Perl5.24以降)に対応する方法
- MT6.2のファイルアップロードで「Undefined subroutine &POSIX::strftime」になる問題の対処
- Movable Typeのファイルアップロードで「アップロードしたファイルは大きすぎます。」というエラーになる場合の対処
- Movable Typeのパスワード変更で「URLが不正です。」というエラーなる件についての対処
- Movable Typeで「Cannot find column 'blogs' for class 'MT::Blog'」となる場合の対処
- Movable TypeでMTPageNextタグが効かなくなる不具合について
- Movable Typeの復元で「Request-URI Too Large」になるときの対処
- サーバ故障と「Connection error: Too many connections」エラーおよびMySQLテーブル破損について
- Movable Typeでエラー発生箇所を特定する方法
- IE9でMovable Typeを利用する方法
- MTIfタグにtagモディファイアを利用する場合の注意事項
- Movable Type 5のブログの設定で「Can't call method "label" on unblessed reference」が発生する問題について
- Movable Type 5.03へのアップグレードで再構築時に「Script Error」が発生する件について(つづき)
≫ MT4.1にバージョンアップ from ストレンジャー
このブログともうひとつをMovable Type 4のバージョン4.01から4.... [続きを読む]
MT4.1でブログの複製をしたら、テンプレートが何もない状態、
記事も、1つだけ残った状態で複製されるのですが、
MT4.1では、これが正常なのでしょうか?(エラー表示は出ません。)
私が現在やりたいのは、MT4.1で管理している
全てのブログの、設定の共通化です。
なので、BlogSkeletonClonerプラグインでできていたような、
テンプレートや設定のみの丸ごとコピーが必要なのですが、、、。
解決策がありましたら教えていただけると幸いです。
よろしくお願いします。
早速の対応、ありがとうございました。
ご指示通り、対処しましたら できました。
ありがとうございました。
初歩的なことで恐縮ですが、初心者なのでお許しください。
Movable Type 3.35を使用していますが、日本語ドメインに対応させるために、ブラウザをIE6??から、IE7に変更した途端に、エントリーの位置がおかしくなってしまいました。どのようにしたら、元通りに復帰しますか?ご教授ください。
>ゆうさん
こんばんは。
ご質問の件ですが、明らかに動作異常に思われます。
また残念ながら当方では原因不明です。
お役に立てず申し訳ありません。
>chi-さん
こんばんは。
ご連絡ありがとうございました。
無事に直ったようでよかったです。
ではでは!
>satopaさん
こんばんは。
ご質問の件ですが、「エントリーの位置がおかしく」とは、具体的にどのような状態でしょうか?
ブラウザのバージョンアップで問題が発生したのであれば、一度IE6に戻してみるという手もあります。
いずれにしても、問題の内容がよく理解できておらず申し訳ありません。
MT4.25で テンプレート、template_4_2_utf8_1_13_style_liquidを使わせていただいています。有難うございます。
テンプレートの問題ではないのですが、コメント回りに、プレビューや絵文字など組み込んでいくウチに、気がついたら「ログイン情報を記録」が記憶されなくなってしまったのですが、他のJavaScriptや、記述によって動作しなくなる、というのは有ることでしょうか?。
念のためクッキーの削除と、別ブログにオリジナルテンプレートを入れ試したところ、「ログイン情報」は問題なく記憶されていましたので、何処かでミスったのかと思いますが…やはり一個ずつ外して調べるしかないでしょうか。
>Ranさん
こんばんは。
テンプレートご利用ありがとうございます。
ご質問の件ですが、クッキーの保存はJavaScriptで行なっているので、競合等で正常に動作していない可能性が考えられます。
こちらではピンポイントで対処方法が提示できませんので、申し訳ありませんが切り分けを行なって頂ければ幸いです。
それではよろしくお願い致します。