「WordPressで学ぶPHP(4)通信編」を発売しました。
本書は、「WordPressで学ぶPHP(1)変数・制御構造編」「WordPressで学ぶPHP(2)データ構造編」「WordPressで学ぶPHP(3)関数編」の続編にあたり、Webブラウザとサーバー(PHP)との通信と、PHPから他のサーバーに通信することについて解説します。
メールフォームのサンプルテンプレート
2007年1月27日
メールフォームプラグインにクロスサイトスクリプティングの脆弱性等の不具合が見つかりました。申し訳ありません。
こちらのエントリーをご参照の上、最新版にアップデートしてください。
2007年1月23日
メールフォームプラグインのバージョン1.20を公開しました。
解説も更新しましたので、こちらのエントリーをご参照ください。
昨日まで、5回に分けてメールフォーム用プラグインの使い方を解説してきましたが、今日はメールフォームのテンプレートのサンプルを配布します。
小粋空間のyujiro氏にお許しをいただき、小粋空間テンプレートをベースにしたメールフォームテンプレートを作成しました。
1.ファイルのダウンロード
まず、以下をクリックして、サンプルのファイルをダウンロードします。
2.テンプレートの設定
ファイルはzip形式で圧縮してありますので、解凍して中のファイルを取り出します。
以下の4つのファイルが含まれています。
ファイル名 | 内容 |
---|---|
mail_form.txt | メールフォームのテンプレート |
mail_post.txt | メール送信完了ページのテンプレート |
mail_preview.txt | 送信前確認ページのテンプレート |
mail_error.txt | 送信エラーページのテンプレート |
まず、インデックステンプレートを新規作成して、メールフォームのテンプレート(mail_form.txt)の内容をすべて貼り付けて保存します。
このインデックステンプレートの名前と出力先ファイル名は、自由につけていただいてかまいません。
次に、テンプレートモジュールを新規作成して、その名前を「mail_post」にし、メール送信完了ページのテンプレート(mail_post.txt)の内容をすべて貼り付けて保存します。
同様の手順で、送信前確認ページ(mail_preview.txt)は「mail_preview」という名前のテンプレートモジュールに保存し、送信エラーページ(mail_error.txt)は「mail_error」という名前のテンプレートモジュールに保存します。
Movable Typeのプラグイン集「MT Cloud Starter Kit」をぜひご利用ください
かっこう
お世話になります。
MailFormを設置させていただいきました。
メール送信は問題なく行えたのですが、エラーの場合に出るエラーメッセージのみ文字化けしてしまいます。
私はMovable Typeの設定をshift_jisにしているからでしょうか。
文字コードの変換が分らず、いじったのは「lib」フォルダのMailForm.pmの44行目「 my $enc = $mgr->PublishCharset || 'shift_jis';」だけです。
保存の時にshift_jis形式で保存しなおすとcgiが作動しなくなります。
よろしければお知恵をお貸しください。
よろしくお願い致します。
壱
>かっこうさん
こんにちは。プラグインご利用ありがとうございます。
ShiftJISでテストする環境がないので何とも言えませんが、lib/MailForm.pm内の日本語のメッセージをHTMLエンティティ化すれば、文字化けしなくなるのではないかと思います。
ちなみに、ShiftJISはプログラム言語との相性があまりよくなく、トラブルの元になりやすいです。
NOB
はじめまして。
メールフォーム使用させていただきました。
上記テンプレートをそのまま利用したのですが
どうも、モジュールが上手に動きません。
確認、送信ボタンを押すと404エラーになってしまいます。
解決方法お教え願えれば幸いです。
よろしくお願いいたします。
壱
>NOBさん
こんにちは。
mt-mail-form.cgiファイルが見つからないために、404エラーになっています。
メールフォームのプラグインはインストールされているでしょうか。
NOB
たびたび申し訳ありません。
メールフォームのプラグインはインストールされている
ようなのですが・・・
何か他の原因は考えられませんでしょうか。
お手数かけて申し訳ありません。
壱
>NOBさん
こんにちは。
アップロード先のディレクトリは正しいでしょうか。
以下のような配置になっていることが必要です。
Movable Typeのディレクトリ
└pluginsディレクトリ
└MailFormディレクトリ
├MailForm.pl
├mt-mail-form.cgi
└libディレクトリ
└MailForm.pm
NOB
壱さん
こんばんは。
何度も申し訳ありません。
ディレクトリ確認しましたが、問題ないようでした。
サーバーがロリポップなのですが
パーミッションの関係なのでしょうか・・・?
壱
>NOBさん
こんにちは。
ディレクトリが問題ないとなると、原因は分からないです。
ただ、http://www.king-of-mangos.com/cgi/mt/plugins/MailForm/mt-mail-form.cgiに直接にアクセスしたところ、やはり404エラーが出ましたので、ファイルの配置に問題があるように思います。
NOB
壱さん
こんにちは
ありがとうございました!。
非常に単純なことで無事解決しました。
ご丁寧に何度もスイマセンでした。
fag
初めまして!
いつも勉強させていただいてます。:pp_11.gif:
ちょっとご相談ですが。:pp_02.gif:
こちらのメールフォームを改造したAjax風なメールフォームを設置するを参考にeuc-jpのサイトに取り入れてみましたが,プレビューなどはMT-I18Nプラグインでutf-8に変換出来て表示はうまくいくのですが(プレビューテンプレートの等に使用),送られてきたメールが\x{fffd}だらけになってしまいます。
lib/MailForm.pmをどこか変更すると対応できるものなのでしょうか?
何か良いアドバイスございましたら宜しくお願いします。:pp_07.gif:(エントリーから少し脱線した内容ですみません:pp_08.gif:)
壱
>fagさん
こんにちは。
メールフォームのAjax化については、後日エントリーをアップしたいと思いますので、今しばらくお待ちください。
ユニオン
プラグインを、利用させてもらっています。ありがとうございます。
メールフォームのサンプルテンプレートを、組み込みテストしています。大方思い通りの動作が確認できるのですが、次のようなケースで、受取ったメールが化けてしまい困っています。
フォームの最初の入力項目(お名前)で、「峯村 勉」のように姓名の間に、半角のスペースを入力すると、受取ったメールで、第1、第2項目の内容(お名前、メールアドレス)が、化けてしまう。第3項目からは、正常な内容に戻っている。
原因として、どのような事が考えられるでしょうか。
対策があれば、あわせてよろしくお願いします。
壱
>ユニオンさん
こんにちは。プラグインご利用ありがとうございます。
このプラグインでは、MTのメール送信機能を流用しています。
少し調べてみましたが、MTの通常の設定(MT自体の文字コードはutf-8で、メールはJISで送信する)だと、送信者名に日本語があると、場合によって文字化けしたり、メールが送信されなかったりすることがありました。
一方、mt-config.cgiに「MailEncoding utf-8」の記述を加えて、メールをutf-8で送信するようにすると、文字化けはなくなりました。
MTの文字コードがutf-8で、かつお使いのメールソフトがutf-8のメールに対応しているなら、上に書いたように、mt-config.cgiに記述を加えるのが手っ取り早いです。
ただ、MTの文字コードをutf-8以外に設定している場合は、動作を検証していませんので、違う結果になることも考えられます。
ユニオン
早速ご回答いただきありがとうございます。
結果は、OKです。
mt-config.cgiに「MailEncoding utf-8」の記述を加えて、半角スペース入りの名前をフォームで、送信しました。IE(メーラー)で、きちっと確認できました。
今後ともよろしくお願いします。