質問 > フロント機能 > メールテンプレートの文字化けについて |
フロント機能
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
AMUAMU |
投稿日時: 2013/1/23 7:03
対応状況: −−−
|
神 登録日: 2009/5/2 居住地: 東京都 投稿: 2712 |
Re: メールテンプレートの文字化けについて 原因判明しました。
かなり複雑な問題ですが自分の備忘録も兼ねて少々濃い内容を書きます。簡単に見たい人は●のあたりと、最後を確認して下さい。 ●第一の原因(主因) 「hetemlサーバー内のlibxmlの不具合、libxmlのバージョンが古い」 heteml環境のPHPがリンクしている libxmlライブラリが 2.6.16 と少し古いのですが、当該バージョンのライブラリには不具合(Bug)があり、これが特定の利用状態に当てはまると今回のような状況になります。 libxmlライブラリが2.7以上であれば改善済みの不具合のようです。libxmlが2.7.6の環境では再現しませんでした。 ※といっても、PHPの動作要件は2.6.0以上となっているので、必ずしもhetemlが一方的に悪いわけでもないです。 ※当該不具合の詳細ですが、PHP5のDOM::loadHTMLは不正なHTMLを読み込ませても一応、処理を続けることが出来る仕様です。ところが、特定のパターン(テキストの羅列+記号?)に当てはまるHTMLの場合、該当のパターン部分を余計なノード(?)として勝手に操作してしまいます。これが<p>タグが勝手に追加されている理由です。この問題とXMLの仕様上の関係からマルチバイト文字を含まれるテキスト部分を長大なタグとして扱おうとし、自動で数値文字参照に変えているようです。さらに、そこまでしても旨く扱えず、libxml内の変数columnカウンタも異常な値になっているようです。2.7.6では、余計な操作は無くなり、タグも追加されず、数値文字参照にもならず、libxml内の変数columnカウンタも一応使えるような値になっていました。 ●第二の原因: 「EC-CUBE本体としての問題としては、プラグイン用のTransform機能に、テキストだけのメールテンプレートを読み込ませる事が出来る、読み込んでしまう」 実際には今回の問題はトランスフォームを多重に呼び出された際に生じる問題となっています(オブジェクト内の変数リセットが不十分?)。 これは不具合と言うには少々酷かもしれませんが、プラグインのトランスフォーム機能の改善点として追加しなければいけないかもしれません。 ※トランスフォーム機能は色々と問題があるので互換性を考慮しつつ修正を株式会社ロックオンさんと別途検討中です。 ●第三の原因: 「EC-CUBE本体が、メールテンプレートのSmarty処理時にプラグインが無用にTransform機能を呼び出してしまう場合がある」 今回の問題は、プラグインをインストールしていなければ生じません。 またプラグインが特定の画面に介入しようとしなければ生じません。 簡単に確認したところ管理系画面にトランスフォームで介入するいくつかのプラグインが該当する可能性があります。その中の一つが、話題にも出ていたGMO-PG決済モジュールです。 前述のようにPHPの動作環境差異、しかもライブラリの不具合までプラグイン側に責任を持たすのは少々酷なのですが、プラグイン側で対策も可能です。 ※GMO-PG決済モジュールに関しては当方からGMO-PG様に連絡します。早々に対策がされると思いますので該当する方はGMO-PG様のサポートに連絡すると良いと思われます。 ●第四の原因: 「EC-CUBE本体がlibxmlのエラーを無視している」 実装次第ではPHPレベルでエラーを補足可能なのですが、EC-CUBE本体のプラグイン機能内では、DOMモジュールでのエラー(例外発生)を基本無視するようになっている問題。 これは恐らく動作環境(DOMはEC-CUBE自体では必須では無い)との兼ね合いもある部分です。 エラーで止まらず、そのまま走るのは良いのですが、エラーは補足して記録した方が良さそうですので、ここらへんも、しっかりとした実装に改修する必要があるという認識です。 こんなところでしょうか。 とりあえず、すぐに出来る対策としては、プラグイン管理にてOFFに出来るプラグインを探し、一回オフにしてみて、再現しない状態を作り、あとはhetemlなりEC-CUBE本体なりプラグインなりの対応を待つという感じになると思います。
|
フラット表示 | 前のトピック | 次のトピック |
題名 | 投稿者 | 日時 |
---|---|---|
メールテンプレートの文字化けについて | tshohei | 2013/1/15 10:19 |
Re: メールテンプレートの文字化けについて | tsubu | 2013/1/22 11:54 |
Re: メールテンプレートの文字化けについて | tsubu | 2013/1/22 18:22 |
Re: メールテンプレートの文字化けについて | AMUAMU | 2013/1/22 21:33 |
Re: メールテンプレートの文字化けについて | tsubu | 2013/1/23 0:33 |
Re: メールテンプレートの文字化けについて | AMUAMU | 2013/1/23 2:54 |
Re: メールテンプレートの文字化けについて | AMUAMU | 2013/1/23 5:02 |
» Re: メールテンプレートの文字化けについて | AMUAMU | 2013/1/23 7:03 |
Re: メールテンプレートの文字化けについて | tsubu | 2013/1/23 8:55 |
Re: メールテンプレートの文字化けについて | tsubu | 2013/1/23 11:00 |
Re: メールテンプレートの文字化けについて | tsubu | 2013/1/23 14:46 |
Re: メールテンプレートの文字化けについて | tsubu | 2013/1/25 18:20 |
Re: メールテンプレートの文字化けについて | tsubu | 2013/1/26 10:23 |