「WordPressで学ぶPHP(3)関数編」を発売しました。
本書は「WordPressで学ぶPHP(1)変数・制御構造編」「WordPressで学ぶPHP(2)データ構造(配列・オブジェクト)編」の続編にあたり、PHP組み込みの関数や、独自の関数を作る方法などを解説します。
Kindle本で、定価400円です。
メールフォーム作成用プラグイン(汎用フォーム対応/MT3.3対応・その1)
2007年5月30日
スパム対策機能等を追加したV1.30を公開しました。
2007年1月27日
メールフォームプラグインにクロスサイトスクリプティングの脆弱性等の不具合が見つかりました。申し訳ありません。
こちらのエントリーをご参照の上、最新版にアップデートしてください。
2007年1月23日
メールフォームプラグインのバージョン1.20を公開しました。
解説も更新しましたので、こちらのエントリーをご参照ください。
メールフォーム作成用プラグインをバージョンアップしました。
以下の点をバージョンアップしています。
- メールフォームに任意のフィールドを入れることができる
- 複数のメールフォームを設置することができる
- メールの内容をテンプレートで設定することができる
- Movable Type 3.3に対応
今日はバージョンアップの手順を解説します。
なお、このプラグインはMT3.2でも動作します。
MT3.2から3.3へのバージョンアップを検討している方は、今の時点でこのプラグインをバージョンアップしていただくと、MTのバージョンアップの際に便利です。
まず、以下のリンクをクリックして、プラグインのファイルをダウンロードします。
ダウンロードしたファイルは、zip形式で圧縮してありますので、解凍します。
解凍すると、「MailForm」というフォルダができます。このフォルダをMovable Typeの「plugins」フォルダにアップロードします。
これで新バージョンになります。
なお、ファイルの文字コードはutf-8にしてあります。
Movable Typeの文字コードの設定をutf-8以外にしている方は、その文字コードに変えてファイルをアップロードします。
設定は旧バージョンのものが引き継がれます。
また、メールフォームのテンプレートも、従来のままで利用することができます。
従来のメールフォームのままで、このプラグインをMT3.3使えるようにしたいだけの方は、ここまでの作業(プラグインのファイルの差し替え)を行うだけでOKです。
一方、メールフォームに任意のフィールドを入れたりしたい方は、明日以降のエントリーもお読みください。
Movable Typeのプラグイン集「MT Cloud Starter Kit」をぜひご利用ください
Yusuke
pluguinsフォルダへアップし、送信テストをしたところ
Can't call method "data" without a package or object reference at lib/MailForm.pm line 78.
のメッセージが出たので色々探してメールアドレスの設定をしていたのが問題というのまでは気づいたので、システムメニュー側ではないブログ側のプラグインの画面を見たのですがそこにMailFormのプラグインが見えませんでした。システムメニューのプラグインでは確認できていたのですが、原因わかりますでしょうか?
壱
>Yusukeさん
こんにちは。
システムメニューに表示されて、ブログのプラグインの画面に表示されないというのは、聞いたことがないパターンです。
ということで、申し訳ありませんが原因は分かりません。
naganaga
メールフォームプラグインを設置させていただきました。テストしてみたところ、送信完了まで問題なく処理はされるのですが、肝心のメールが送られてきません。パーミッションの間違い等思い付く事はしてみたのですが、解決できませんでした。MTは3.3.3を使用します。サーバはロリポップです。よろしくお願いします。
壱
>naganagaさん
こんにちは。
送信完了の画面が出て、メールが送られないとなると、申し訳ありませんが原因を特定するのは難しいです。
Linn
初めまして。
MT用のメールフォームを作るのにいい方法がないかなーと探していてこちらにたどりつきました。
早速プラグインをダウンロードし、使わせていただいてます。
周囲のデザインの変更も自由にできるし、シンプルでとても使いやすいです。
どうもありがとうございました!
壱
>Linnさん
こんにちは。
プラグインご利用ありがとうございました。
piccori
壱さん、mailform使わせていただいてます。
おおむね上手くいったのですが、
届いたメールの差出人が文字化けしてしまいます...
原因がお分かりになりますでしょうか?
壱
>piccoriさん
こんにちは。プラグインご利用ありがとうございます。
ご質問の件ですが、思いつく原因は以下の2つです。
1.MT本体が3.3以上であるにも関わらず、MTのメール送信のモジュール(lib/MT/Mail.pm)が3.2のもののままになっている
2.サーバーのPerlモジュールのMIME::Wordsが正しく動作していない
ただ、実際の原因は、そちらのサーバーでデバッグしてみないと分からないです。
SS9
プラグインを使わせていただいております。
メールの内容をテンプレートで設定することができるという機能を使って、メールフォームを作ったのですが、メールを送信したときに、「エラーが発生しました。Mail Body Template mail_companyname load error」と表示され送信されなくなってしまいます。試しに表題・名前・Eメール・本文のみにしたところ、何事もなく送信できてしまいました。何度も、取説ページを見直してみてイロイロと試してみたのですが、原因がさっぱり分かりません。どこか勘違いしているのでしょうか?
とりあえず、以下のように書いています。
最初のフォームの入力欄はとしていて、確認・エラーは、" />としています。は、各ページの送信ボタンの上に書いています。
後、Ajax化しています。最初のフォームは、indexページと同階層に置いていません。
助けで下さい。ヨロシクお願いします。
ss9
すみません、タグの部分が消えてしまいました。消えてしまった部分を書き直します。
最初のフォームの入力欄は<input id="mail_companyname" name="mail_companyname" size="30" value="" />としていて、確認・エラーは、<input id="mail_companyname" name="mail_companyname" size="30" value="<$MTMailPreviewExtParam name="mail_companyname"$>" />としています。<input type="hidden" name="mail_body_template" id="mail_body_template" value="mail_companyname" />は、各ページの送信ボタンの上に書いています。
申し訳ありませんでした。
ss9
すみません、タグの部分が消えてしまいました。消えてしまった部分を書き直します。
最初のフォームの入力欄は<input id="mail_companyname" name="mail_companyname" size="30" value="" />としていて、確認・エラーは、<input id="mail_companyname" name="mail_companyname" size="30" value="<$MTMailPreviewExtParam name="mail_companyname"$>" />としています。<input type="hidden" name="mail_body_template" id="mail_body_template" value="mail_companyname" />は、各ページの送信ボタンの上に書いています。
申し訳ありませんでした。
壱
>ss9さん
こんにちは。メールフォームプラグインをご利用いただき、ありがとうございます。
タグの書き方に誤りがあります。
<input type="hidden" name="mail_body_template" id="mail_body_template" value="○○" />の「○○」の部分には、メール本文用テンプレートの名前を指定します。
以下のエントリーをもう一度お読みください。
http://www.h-fj.com/blog/archives/2006/07/09-131550.php
ss9
早速のご返答ありがとうございます。
もう一度、エントリーを目を皿のようにして再確認したところ、ようやく理解できました。メールが送信された後、メーラーで受信した時に表示される部分のテンプレートを作らなければいけなかったのですね。メール本文用テンプレートっていう意味を取り違えてました。
テンプレートからモジュールに入り、新規でモジュール作って、表示項目を書いた内容をコピペした後、名称を「mail_text」にして保存。フォームのあるindexと、error・previewに<input type="hidden" name="mail_body_template" id="mail_body_template" value="mail_text" />の一文を送信ボタンの上あたりに設置した後、再構築をして動作確認をしました。
問題なく動作しました。終わってみれば、ナンのことはない問題だったようでお恥ずかしい限りです。
moc
MTを構築する上で大変参考になる記事をいつもありがとうございます。
以前から自分のMTにてメールフォームのプラグインを
順調に利用させていただいております。
(SAKURAレンタルサーバ・ライトプラン・SQLite・MT3.31)
(MTのインストールはSAKURAレンタルサーバのマニュアルを参照)
このたび、別のレンタル共用サーバにもう一つMTを構築する
ことになり、メールフォームのプラグインをインストールしました。
(firstserver・共用サーバギガントプラン・SQLite2・MT3.31)
(MTのインストールはfirstserverのマニュアルを参照)
しかし、メールフォーム入力後の確認・送信ボタンを押した後に
Got an error: Unsupported driver MT::ObjectDriver::DBI::sqlite: Compilation failed in require at ../../lib/MT/ObjectDriver/DBI/sqlite.pm line 14.
BEGIN failed--compilation aborted at ../../lib/MT/ObjectDriver/DBI/sqlite.pm line 14.
BEGIN failed--compilation aborted at (eval 5) line 1.
というエラーがでてしまい、メールが送られません。
両者のMTのバージョンやコンテンツ内容は全く同じものなので、
原因はサーバ環境によるものなのかなと思うのですが、
対処法がみつかりません。
原因はわかりますでしょうか。どうかよろしくお願いします。
壱
>mocさん
こんにちは。プラグインご利用ありがとうございます。
エラーメッセージからすると、MT内部のSQLiteのドライバ部分で落ちているようです。
メールフォームプラグインでは、SQLiteのドライバを直接に呼び出すような処理はしていませんので、残念ながら原因は不明です。
moc
>壱さん
すばやい回答をありがとうございます!
MTを再インストールすれば改善しそうでしょうか。
壱
>mocさん
こんにちは。
おそらく、MTの再インストールでは問題は解決しないと思います。そちらの環境で動作を追ってみないと、原因を見つけるのは難しいです。
moc
>壱さん
回答ありがとうございます。
そうですか、わかりました。
サーバやMTに関する自分の勉強不足でもあるので、
壱さんのサイトや著書で少しずつ
勉強していきながら今回のことを理解していきたいと思います。
非常に雑な質問だったにもかかわらず
答えていただきありがとうございました!