お知らせ

PHPによるWordPressカスタマイズブック2009年9月8日

PHPによるWordPressカスタマイズブック」が発売されました。
WordPressのテンプレートにPHPのプログラムを書いてカスタマイズする方法や、WordPressのデータベースにPHPでアクセスする方法、またWordPressのプラグインの開発方法など、WordPressをより深く活用したい方に最適な一冊です。

他にも多数書籍を執筆しています。
こちらもぜひご覧ください。

メールフォームプラグインV2.0・その17(各種エラー時の処理)

| コメント(16) | トラックバック(0)

メールフォームプラグインでは、メールが短時間に連続して送信された時などに、送信エラーページが表示されるようにしています。
その際のエラーメッセージをカスタマイズする方法を解説します。

1.標準のエラーメッセージ

送信エラーページのテンプレートの中で、MTErrorMessageタグを使うと、メールフォームプラグインの標準のエラーメッセージを表示することができます。

2.エラーメッセージのカスタマイズ

エラーメッセージをご自分の好きなようにカスタマイズしたい場合、以下の条件タグを使ってエラーの発生を判断するようにします。

エラー条件タグ
メールの送信に失敗したときMTMailIfSendError
返信メールの送信に失敗したときMTMailIfAutoReplyError
連続送信されたときMTMailIfThrottled
IPアドレスでブロックされたときMTMailIfIPBanned
スパムと判定されたときMTMailIfSpam

たとえば、メールが連続送信されたときに、「短時間でのメールの連続送信はご遠慮いただいています。」のエラーメッセージを表示したい場合、送信エラーのテンプレートに以下のようなタグを入れます。

<MTMailIfThrottled>
<p>短時間でのメールの連続送信はご遠慮いただいています。</p>
</MTMailIfThrottled>

同様の手順で、他のエラーに対するメッセージもカスタマイズすることができます。

トラックバック(0)

トラックバックURL: http://www.h-fj.com/mt/mt-tb.cgi/1228.

コメント(スレッド8件,コメント16件)

コメントはスレッド表示になっています。
また、スレッドの先頭のコメントに対する返信には、先頭に矢印を表示しています。

No.1 hiroyuki : 入力チェックについて

お世話になります。
メールフォームをカスタムして名前(フリガナ)や電話番号を入力させる項目を設けているのですが、カタカナや英数字の入力チェックはできないのでしょうか。
フリガナの欄はカタカナ以外の文字が入っていたらエラーに、電話番号の欄には数字以外が入っていたらエラーにしたいと考えています。
当初javascriptで実現させようとしていたのですが、javascriptを実行するタイミングが難しく断念しました。
何か良い方法がありましたらご教授ください。
よろしくお願いいたします。

No.2  : Re:入力チェックについて

>hiroyukiさん
こんにちは。プラグインご利用ありがとうございます。

ご質問のような件ですが、このプラグインにはそのような機能はありません。
フォームを送信する直前にJavaScriptを実行して(formのonsubmit属性)、エラーチェックするようにすれば良いかと思います。

No.3 hiroyuki : (無題)

壱様
回答ありがとうございます。
onsubmitを使えばよいのですね。今まで「確認」「送信」ボタンのonclickに埋め込もうとしていたのでうまくいかなかったようです。
もう一点、続けて質問になってしまって申し訳ないのですが、javascriptを使用した場合はやはり「MTErrorMessage」のエラーとは違うエラーになるという認識でよろしいでしょうか?
よろしくお願いいたします。

No.4  : (無題)

>hiroyukiさん
こんにちは。

JavaScriptでのエラー処理は、このプラグインの関知するところではありません。
表示するエラーメッセージも、JavaScriptで自由に組んでいただくことができます。

No.5 hiroyuki : (無題)

壱様
ご回答ありがとうございます。
いろいろとありがとうございました。

No.6 海風 : 迷惑メールを防ぎたい

お世話になります。

最近はホームページを閲覧しないで、自動的にメールフォームから迷惑メール(特に海外から)が届いており、この対策をやりたいのですが、このプラグインの機能を駆使すれば可能でしょうか?
もし可能であれば、その方法をご教授いただけないでしょうか。

ちょうど、このコメントのように「特定のキーワード」を入力してもらい、そのキーワードが一致していない場合はエラーにするようにしたいと考えていますが・・・。

No.7  : Re:迷惑メールを防ぎたい

>海風さん
こんにちは。

このプラグインでは、MT標準のコメント/トラックバック用のスパム対策機能を流用するようになっています。
キーワードでスパムかどうかを判定するなら、MT標準の「SpamLookup - Keyword Filter 2.1」で、キーワードを設定します。

ちなみに、海外からの日本語を含まないメールを避けるなら、拙作のNotJapaneseLookupプラグインを使うのも1つの方法です。

http://www.h-fj.com/blog/archives/2005/10/08-110622.php

No.8 海風 : (無題)

ありがとうございます。
さっそく試してみます。
ありがとうございました。

No.9 きなこ : メールアドレスの形式

こんにちは。

メールアドレスの形式が正しくない場合に、<MTErrorMessage>タグを使用せずに「メールアドレスの形式が正しくありません」と表示したいのですが、方法はございますでしょうか。

フィールドを追加しているので、<MTErrorMessage>では思い通りのテキストにならず、個別にエラーを作成しているのですが、方法が分かりかねております。

何卒よろしくお願い致します。

No.10  : Re:メールアドレスの形式

>きなこさん
こんにちは。

ご質問の件ですが、「MTMailPreviewIfEMailError」というブロックタグで、メールアドレスの形式が正しくない場合に、エラーメッセージを出力することができます。

No.11 きなこ : (無題)

「その8」のエントリーに載っていたのを見落としておりました。
すぐにご返信頂きましてありがとうございます。

No.12 ユウ : (無題)

藤本 壱 さま
先程は突然のメールの回答ありがとうございました。

URLを載せた質問だったためメールでさせていただきましたが
情報を共有するためコチラの方で書き込みを続けたいと思います。

質問内容の要約
独自のテンプレートにて構築をしていましたが
再構築にてエラーが無くなったのでテキストを追加して
形としては完成しました。

しかし最初のフォームから送信をすると
MT画面のエラー表示
『エラー内容は設定を読み込むのに失敗しました』
が出てしまいます。
どのようにしたらよいでしょうか?

回答
>フォーム部分(~)の中に、以下のようなタグが必要です。
>なお、「メールフォームの設定の名前」は、
そちらで設定した名前に応じて変える必要があります。

指示通り入れてみましたがまだ読み込みエラーと出てしまいます。
他に訂正する部分はありますでしょうか?

お手数をおかけいたしますが教えていただけると助かります。

No.13  : (無題)

>ユウさん
こんにちは。

フォーム内に以下のタグも追加してください。
「ブログのID」は、メールフォームが属しているブログのIDに合わせて書き換えてください。

<input type="hidden" name="mail_blog_id" value="ブログのID">

また、送信ボタンのinputタグには、必ず「name="mail_post"」の属性を付けてください。

No.14 ユウ : (無題)

藤本 壱 さま
返信が遅くなり申し訳ありませんでした。

共通部分にて勘違いして記入したいる部分が見つかり
各モジュールも訂正したらうまくいきました。

お手数をおかけいたしました。

No.15 エイゴ : 藤本 壱 さま

藤本 壱さま こんにちは

2週間前に大変素晴らしいMailForm_2_10b(環境はMT4.2)というプラグインをはじめて使いました。直ぐにインストールして、簡単に使えて便利でした。しかし、1週間ぐらい経って、テンプレートをいじっていくうちに、何故か突然使えなくなりました。
それで改めて、新しくブログを作成してメールフォームを作成して、アクセス(http://www.XXXXXXXX.com/mt/plugins/MailForm/mt-mail-form.cgi)すると、「エラーが発生しました。設定を読み込むのに失敗しました」というメッセージが現れます。
プラグインを一旦削除して再度入れ直してたり、新規ブログでシンプルな基本のフォームでも、同様の症状が起こります。使っているサーバー自体は安定していると思います。CoreServerを利用しており、試しで同じ環境の他のサーバにMTを設置して、MailFormを入れたら何の問題なく動いております。
感覚的な話ではありますが、データベースに何か書き込まれているような感じがしております。プラグイン自身を初期化する方法はありますでしょうか?

No.16  : (無題)

>エイゴさん
こんにちは。

原因はよくわかりませんが、とりあえずメールフォームプラグインをいったん削除して、入れなおしてみてください。
手順は以下の通りです。

1.メールフォーム関係のテンプレートをすべて削除します。
2.メールフォームプラグインのファイルをサーバーから削除します。
3.phpMyAdminで、データベースの「mt_mailform_setting」テーブルを削除します。
4.データベースの「mt_config」テーブルを編集する状態にします。
5.4.のテーブルにレコードが1つだけありますので、そのレコードを編集する状態にします。
6.「config_data」フィールドの値の中から、以下の部分を削除して、レコードを保存しなおします。

PluginSchemaVersion mailform=1.01

コメントする