「WordPressで学ぶPHP(1)変数・制御構造編」が発売されました。
「WordPressで学ぶPHP」シリーズの第1巻で、WordPressを通してPHPを学んでいく本です。
この本では、PHPの基本となる変数と制御構造について解説します。
Kindle本で、定価500円です。
メールフォーム作成用プラグイン(その3)
2007年1月27日
メールフォームプラグインにクロスサイトスクリプティングの脆弱性等の不具合が見つかりました。申し訳ありません。
こちらのエントリーをご参照の上、最新版にアップデートしてください。
2007年1月23日
メールフォームプラグインのバージョン1.20を公開しました。
解説も更新しましたので、こちらのエントリーをご参照ください。
メールフォーム作成用プラグインの3回目として、メール送信完了ページのテンプレートを作成する方法を解説します。
メール送信完了ページは、メールフォームでメールを送信した後に表示されるページです。
「メールを送信していただき、ありがとうございました」のようなメッセージを表示するのに使います。
1.テンプレートモジュールの新規作成
メール送信完了ページのテンプレートは、テンプレートモジュールとして作ります。
Blogのメニューで「テンプレート」を選び、テンプレート一覧の画面で「モジュール」のタブをクリックして、テンプレートモジュール一覧のページを開きます。
そして、「モジュールを新規作成」のリンクをクリックして、テンプレートモジュールを新規作成します。
「テンプレート名」の欄には、「mail_post」と入力します。
そして、「モジュールの内容」の欄には、メールを送信してくれた人に対して、送信が完了したことを伝えるためのHTMLを入力します。
2.テンプレート内で利用できるタグ
メール送信完了テンプレートや、メール送信エラー/メール送信確認のテンプレートでは、以下のテンプレートタグを使うことができます。
テンプレートタグ | 内容 |
---|---|
MTMailPreviewAuthor | メールの送信者の名前 |
MTMailPreviewEMail | メールの送信者のメールアドレス |
MTMailPreviewSubject | メールの件名 |
MTMailPreviewBody | メールの本文 |
例えば、テンプレートの中に「<$MTMailPreviewAuthor$>さん、メールを送信していただきありがとうございました。」と入れると、MTMailPreviewAuthorタグの部分が、メールを送信してくれた人の名前に置き換わって表示されます。
Movable Typeのプラグイン集「MT Cloud Starter Kit」をぜひご利用ください
kn
はじめまして。
先日MailFormをインストールさせていただいたのですが、
送信完了画面が真っ白になって表示されません。
何か原因は考えられますでしょうか。
ちなみに各モジュールにはダウンロードした「MailFormSmpl_MT」の各ソースをそのまま使っています。
お忙しいところ恐縮ですが、よろしくお願いします。
壱
>knさん
こんにちは。プラグインご利用ありがとうございます。
そちらのメールフォームで送信を試させていただきましたが、送信完了画面は問題なく表示されました。
ご自分で試すと、常に真っ白になるということでしょうか。
kn
壱様
さっそくの調査ありがとうございます。
再度こちらの環境でテストしたところ、動作状況は以下のような感じでした。
●OK
Win IE6/7 OP8.5
Mac FF1.5
●NG(プレビュー画面まではOK)
Win FF2.0
Mac safari2.0
どうぞよろしくお願いします。
壱
>knさん
こんにちは。
こちらでもWindowsのFirefox2.0とMacのSafari2.0でメールを送信してみましたが、送信完了画面が表示されました。
何か環境に依存する問題のようで、申し訳ありませんが解決法は簡単には見つからなさそうです。
kn
壱様
お忙しいところ迅速な調査ありがとうございましたm(_ _)m
先ほどFFのアップデートをしたところ、無事に送信されました。
おっしゃるとおり、環境に依存する問題のようです。
ありがとうございました。
yk
はじめまして、この度はどうぞよろしくお願いいたします。
早速、MailFormをMT3.5にて各ソースをそのままインストール
させていただきました。
しかしながらフォームにて投稿の際、「確認」ボタンを押し
確認画面までは正常に表示されるのですが、そのあと「投稿」を
押しますと10秒程経過した後、「Internal Server Error」となってしまいます。
そこで、サーバのエラーログを確認してみましたところ、
以下のようなメッセージが表示されていました。
[Mon Jul 23 11:20:08 2007] [error] [client xxx.xxx.xxx.x] malformed header
from script. Bad header=/home/xxxx/dead.letter... Sav:mt-mail-form.cgi,
referer:http://xxx.xxx.jp/mt/plugins/MailForm/mt-mail-form.cgi
IE6及びIE7ともに同じ現象です。
なお、サーバ環境は、ホスティング会社の商用向けVPS(ラピッド)を
使用しております。
大変お手数おかけしますが、どうぞよろしくお願い申し上げます。
壱
>ykさん
こんにちは。
「malformed header」のエラーはいろいろな要因で起こりますが、メールが関係する場合だと、送信先のメールアドレスが正しく設定されていない可能性があります。その点を調べてみてください。
そうでないとすると、申し訳ありませんが理由は簡単には分からないです。
yk
壱様
早速のお返事、ありがとうございました。
送信先のアドレスは問題がありませんでしたので、
やや複雑な原因かと思っております。
改めて手前共で調べ上げていきたいと思っております。
この度は迅速なお返事、本当にありがとうございました。
中田勝久
こんにちは!いつも拝見させていただいております。
今日は少し無理なお願いをさせていただきたく思います。
当方の環境は一身上の都合上MT3.2からバージョンアップできません。
できれば3.2でも対応可能なメールフォームを公開していただけませんでしょうか?
お手数をおかけいたしますがよろしくお願いします。
壱
>中田勝久さん
こんにちは。
メールフォームプラグインのV1.20はMT3.2でも使えます。
http://www.h-fj.com/mt_plugin/MailForm_1_20.zip
中田勝久
ご丁寧にご連絡ありがとうございました。
またAjaxなどの本も出版されているみたいですので
購入を検討させていただきますね。
今後も活躍をきたいするとともに
ご指導などもよろしくお願いします。
いつも貴重な情報をありがとうございます♪
中田勝久
中田勝久
バージョン1.20ありがとうございました。
ダウンロードして使わせていただきましたがサイトの文字コードがeuc-jpになっていて変換したところプラグインを読み込めなくなりました…
そんな場合はどうしたらいいでしょうか??
壱
>中田勝久さん
こんにちは。
読み込めないというのは、具体的にはどういった状態でしょうか。
何らかのエラーメッセージが出るのであれば、そのメッセージをお知らせください。
なお、ファイルをアップロードする際には、MailForm_1_20.zip内のすべてのファイルをEUCに変換してください。
中田勝久
MacでMultiTextConverterでeuc-jpに変換した際にMTのプラグイン確認画面で下記のエラーメッセージが出ます。
syntax error at /usr/home/fdidi345/www/htdocs/mt/plugins/MailForm/MailForm.pl line 1, near "@charset "EUC-JP"" BEGIN not safe after errors--compilation aborted at /usr/home/fdidi345/www/htdocs/mt/plugins/MailForm/MailForm.pl line 13. Compilation failed in require at lib/MT.pm line 552.
すべてのファイルを変換はしました。
ご指導よろしくお願いします。
壱
>中田勝久
こんにちは。
MultiTextConverterが間違った変換を行っているようです(もともとのMailForm.plには、「@charset "EUC-JP"」の行はありません)。
他の変換ソフトを使うなどしてみてください。
中田勝久
お世話になります、中田勝久です。
上記の件はなんとかクリアできましてプラグインの設定画面の文字化けも解消されました。
しかし、実際メールを送った際に文字化けしますがこれはどうしたらいいでしょうか??下記は実際のメールで受信しました文章です。
-----------------------------------------
蕁???????鐚?こんにちは
???篆∴??鐚?aa
????????鐚?
こんんばんわ
--
Powered by Movable Type
Version 3.21-ja
http://www.sixapart.jp/movabletype/
-----------------------------------------
壱
>中田勝久さん
こんにちは。
おそらく、lib/MailForm.pmがEUCに正しく変換されていません。
その点を確認してみてください。
kibeからykへの返信
壱さま
はじめまして。そして、お世話になっております。
1年以上前のコメントに対する返信で恐縮ですが、
yk様と同じ問題に遭い、解決しましたのでコメントさせていただきます。
>しかしながらフォームにて投稿の際、「確認」ボタンを押し
>確認画面までは正常に表示されるのですが、そのあと「投稿」を
>押しますと10秒程経過した後、「Internal Server Error」となってしまいます。
>なお、サーバ環境は、ホスティング会社の商用向けVPS(ラピッド)を
>使用しております。
バージョンは、MT4.2で、Mailformは2.1でしたが、上記と同様のエラーが起こりました。
私の場合もサーバーが、ラピッドサイトのVPSでした。
壱さまのサイトの書いてある対応策を一通りやってみたのですが、解決せず、サーバーに問題があるのではないかと思ってサーバー側に問い合わせましたところ、
このサーバーでは、Sendmailのデフォルトの送信ユーザーの設定が、Apache@で、設定していないユーザー設定になっているケースがあり、送信できない可能性がある、ということでした。
そこでサーバー側で設定を変更してもらったところ、無事解決いたしました。
上記の方もおそらく同じ理由だったかと思います。
taniyama.masamune
はじめまして。谷山と申します。
Movable Type version 4.261にて、メールフォーム作成用プラグインをインストールさせていただきました。
WindowsXPのFirefox3.6.10、IE8.0にて、フォームにて投稿の際、「確認」ボタンを押して確認画面までは正常に表示されるのですが、そのあと「投稿」を押しますと、「Internal Server Error」となってしまいます。
サーバのエラーログには、下記のようなメッセージがありました。
[Tue Oct 12 11:06:47 2010] [error] [client xxx.xxx.xxx.xxx] malformed header from script. Bad header=/home/xxxxxxxxx/dead.letter: /home/xxxxxxxxx/www/mt/plugins/MailForm/mt-mail-form.cgi
ところが、Windows 7(Professional)のFirefox3.6.10、IE8.0では、上記「Internal Server Error」が表示されません。
サーバ環境は、さくらインターネットのレンタルサーバ スタンダード使用しております。
以前のコメントにて、同様の現象がラピッドサイトのVPSにてあったとの事から、さくらインターネットに問い合わせましたが、下記返答をいただき、サポートする事ができないとの事でした。
--------------------------------
他社様のサーバの設定に関しましては弊社とどのような違いがあるか分かりかねますため、同じ原因であるかは判断を行うことは出来ません。
ラビットサイト様にて行われた対応はサーバ管理者権限での操作が必要な対応と思われますため、仮に同じ原因であった場合は弊社では対応を承ることは出来ません。
--------------------------------
以上です。
その他、伝えるべき事項がありましたら、教えてください。
お手数おかけしますが、よろしくお願いいたします。