お薦め ページ


メニュー

ハワイ島 遊覧飛行ツアー

ハワイ島 B&B・ホテル

ハワイ島 不動産情報

ハワイ島 情報・観光ガイド

ブログ(Blog)

その他

関連サイト

: 日付別 アーカイブ :

2006年1月 2日

2006年1月 2日

MovableType のスパム対策(11) 「コメントスパム対策(10)」

前回の 『MovableType のスパム対策(10) 「コメントスパム対策(9)」 』からの続き。 やっと、問題点が解決しましたので、今回はそのまとめ。

コメントスパム対策を行ってきたなかで、 最後に残った コメント入力時の「名前」「メールアドレス」「URL」の 値が引き継がれない問題点は、 JavaScriptの問題だったとわかりました。 そこで、以前のエントリー でも、予告しておいた、 この問題への対応版コメントフォームを 今回、掲載させていただきます。 これは、このシリーズでは「CommentFieldsTemplate」と名付けているテンプレートで 現在、JTPAのサイトで実際に使っている内容です。
<MTEntryIfCommentsOpen> 

<h2>コメントしてください</h2>

<MTIfRegistrationRequired>

<MTIfNonEmpty tag="MTTypeKeyToken">
<div id="thanks">
<p>サイン・インを確認しました、
<script type="text/javascript" src="<MTCGIPath><MTCommentScript>?__mode=cmtr_name_js"></script>
<script>document.write(commenter_name);</script>
さん。続けてコメントしてください。
(<a href="<$MTCGIPath$><$MTCommentScript$>?__mode=handle_sign_in&static=1&
entry_id=<$MTEntryID$>&logout=1">サイン・アウト</a>)</p>

(いままで、ここでコメントしたとがないときは、コメントを表示する前にこのウェブログのオーナー
の承認が必要になることがあります。承認されるまではコメントは表示されません。
そのときはしばらく待ってください。)

<form method="post" action="<$MTCGIPath$><$MTCommentScript$>" name="comments_form"
onsubmit="if (this.bakecookie[0].checked) rememberMe(this)">
<input type="hidden" name="static" value="<$MTCommentPreviewIsStatic$>" />
<input type="hidden" name="entry_id" value="<$MTEntryID$>" />

<input type="hidden" name="spammer" value="goaway" />
<input type="hidden" name="spamming" value="gotohell" />


<p><label for="url">URL:</label><br />
<input tabindex="1" type="text" name="url" id="url" /></p>

<p>入力情報を記憶する:
<input type="radio" id="remember" name="bakecookie" onclick="rememberMe(this.form)" />
<label for="remember">はい</label>
<input type="radio" id="forget" name="bakecookie" onclick="forgetMe(this.form)"
value="Forget Info" style="margin-left: 15px;" />
<label for="forget">いいえ</label><br style="clear: both;" />
</p>

<p><label for="text">コメント:</label><br />
<textarea tabindex="2" id="text" name="text" rows="10" cols="50"></textarea></p>

<div align="center">
<input type="submit" tabindex="3" name="preview" value=" 確認 " />
<input style="font-weight: bold;" tabindex="4" type="submit" name="post" value=" 投稿 " />
</div>
</form>

</div>

<script language="javascript" type="text/javascript">
<!--
if (commenter_name) {
document.getElementById('thanks').style.display = 'block';
} else {
document.write('サイン・インしていません。このサイトにコメントをする前に登録してください。<a href="<$MTSignOnURL$>&v=1.1&<MTIfNeedEmail>need_email=1&</MTIfNeedEmail>t=<MTTypeKeyToken>&_return=<$MTCGIPath$><MTCommentScript>%3f__mode=handle_sign_in%26static=1%26entry_id=<$MTEntryID$>">サイン・イン</a>');
document.getElementById('thanks').style.display = 'none';
}
// -->
</script>

<MTElse>
コメント登録機能が設定されていますが、TypeKey トークンが設定されていません。
</MTElse>
</MTIfNonEmpty>

<MTElse>
<MTIfNonEmpty tag="MTTypeKeyToken">
<script type="text/javascript" src="<MTCGIPath><MTCommentScript>?__mode=cmtr_name_js"></script>

<script language="javascript" type="text/javascript">
<!--
if (commenter_name) {
document.write('<p>サイン・インを確認しました、', commenter_name, ' さん。続けてコメントしてください。(<a href="<$MTCGIPath$><$MTCommentScript$>?__mode=handle_sign_in&static=1&entry_id=<$MTEntryID$>&logout=1">サイン・アウト</a>)</p>');
} else {
document.write('<p>TypeKey ID を使って<a href="<$MTSignOnURL$>&v=1.1&<MTIfNeedEmail>need_email=1&</MTIfNeedEmail> t=<MTTypeKeyToken>&_return=<$MTCGIPath$><MTCommentScript>%3f__mode=handle_sign_in%26static=1%26entry_id=<$MTEntryID$>">サイン・イン</a> してください。</p>');
}
// -->
</script>
</MTIfNonEmpty>

<form method="post" action="<$MTCGIPath$><$MTCommentScript$>" name="comments_form"
onsubmit="if (this.bakecookie[0].checked) rememberMe(this)">
<input type="hidden" name="static" value="<$MTCommentPreviewIsStatic$>" />
<input type="hidden" name="entry_id" value="<$MTEntryID$>" />

<input type="hidden" name="spammer" value="goaway" />
<input type="hidden" name="spamming" value="gotohell" />

<div id="name_email">
<p><label for="author">名前:</label><br />
<input tabindex="1" id="author" name="author" value="<$MTCommentPreviewAuthor$>" /></p>

<p><label for="email">メールアドレス:</label><br />
<input tabindex="2" id="email" name="email" value="<$MTCommentPreviewEmail$>" /></p>

</div>

<MTIfNonEmpty tag="MTTypeKeyToken">
<script language="javascript" type="text/javascript">
<!--
if (commenter_name) {
document.getElementById('name_email').style.display = 'none';
}
// -->
</script>
</MTIfNonEmpty>

<p><label for="url">URL:</label><br />
<input tabindex="3" type="text" name="url" id="url" value="<$MTCommentPreviewURL$>" /></p>


<p>入力情報を記憶する:
<input type="radio" id="remember" onClick="rememberMe(this.form)" name="bakecookie" />
<label for="remember">はい</label>
<input type="radio" id="forget" name="bakecookie" onclick="forgetMe(this.form)"
value="Forget Info" style="margin-left: 15px;" />
<label for="forget">いいえ</label><br style="clear: both;" /></p>

<p><label for="text">コメント: (日本語でお書き込みください)</label><MTIfAllowCommentHTML></MTIfAllowCommentHTML><br/>
<textarea tabindex="4" id="text" name="text" rows="10" cols="50"><$MTCommentPreviewBody sanitize="a href"$></textarea></p>

<div align="center">
<input type="submit" name="preview" tabindex="5"
value=" 確認 " />
<input style="font-weight: bold;" type="submit" name="post"
tabindex="6" value=" 投稿 " />
</div>
</form>

</MTElse>
</MTIfRegistrationRequired>
</MTIfCommentsAllowed>

<script type="text/javascript" language="javascript">
<!--

if (getCookie("mtcmtauth") || getCookie("mtcmthome")) {
document.comments_form.bakecookie[0].checked = true;
} else {
document.comments_form.bakecookie[1].checked = true;
}
//-->
</script>
</MTEntryIfCommentsOpen>


さて、これでこの問題は解決しましたが、 ムーバブル・タイプのスパム対策は、まだまだ続くことになります。

カテゴリー: MTスパム     22:00 | コメント (1) | トラックバック (3)

 
ハワイ島での遊覧飛行ツアーとB&Bのスペシャリスト、スカイメリカ
Copyright © 2003,2009 Skymerica Corp. All rights reserved.