Hatena::ブログ(Diary)

v-m-sにっし このページをアンテナに追加 RSSフィード

2008-11-01

携帯からのメールフォーム文字化け対策

ずっと対応しなきゃと思っていたのだが、ようやくできた。

V-M-SサイトにはプラグインContact Form 7」をつかったメール送信フォームをいくつか設置していて、問い合わせ受付やイベント開催等に活用している。

この際に悩ましかったのは、携帯電話からアクセスされた場合もこのフォームは利用できるのだが、送信されたメールが文字化けしてしまう、という問題であった。

#幸い(?)、Webメール経由でメール本文を読むことが出来るので、なんとかそれでしのいできてはいたのだが、早急に何とかしなきゃ…とは思っていた。

携帯電話からのアクセスに対応するプラグインとして「Ktai Style」を使用していて、同じ悩みを抱えた方がフォーラムで質問し、「Ktai Style」を開発されたYurikoさんが答えている、この記事でのやりとりを参考にした。

WordPress › フォーラム » 携帯から利用できるコンタクトフォームを教えてください

結局

(Ktai Style の is_ktai() 関数を使えばいけそう)

ということで…使ったらいけた。

is_ktai()関数を他プラグインで使用する際の手順については、Ktai StyleのドキュメントWordPress Plugins/JSeries » Ktai Style サイト設定とテンプレートの改造の「他のプラグインとの連携」に詳しい。

こちらを参考に、Contact Form 7(wp-contact-form-7.php)に下記を追加した。

#710行あたり

// Ktai ONLY
if (preg_match('/^(?:text|textarea)[*]?$/', $type) && function_exists('is_ktai') && is_ktai())
    $_POST[$name] = mb_convert_encoding($_POST[$name], get_bloginfo('charset') ,"SJIS");

問題は…バージョンアップの際に忘れないようにしなきゃだわ、なのだが。

このあたりの作法を実は意外としらなかったりする(汗)

ゆりこゆりこ 2008/11/02 18:32 Contact Form7 との連携については、WordCamp Tokyo でのプレゼン時に miyoshi さんからも質問が出ました。どちらのプラグインが対応すべきなのか難しい問題で、まだけりがついていません。今のところ、Ktai Style 側でなんとかした方がよさそうという考えです。

で、修正コードですが、SJIS 決め打ちはいろいろ問題が出そうです。現在は SJIS ないし SJIS-win しかないですが、将来的には is_ktai() が true でも UTF-8 になる可能性があるため、global $Ktai_Style; してから、$Ktai_Style->get('charset') した値を使ってください。これならば、互換性が保てます。

ぽむぽむ 2009/01/22 20:41 初めまして。少々お聞きしますが、
wp-contact-form-7.phpの
#710行あたりって実際どのあたりなのでしょうか。

直前のソースコードを教えていただけないでしょうか。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/v-m-s_memo/20081101/1225548282