バージョン選択

フォーラム

メニュー

オンライン状況

37 人のユーザが現在オンラインです。 (24 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 37
もっと...

サイト内検索

バグ報告 > 管理機能 > EC-CUBE ログ 表示

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
patapata
投稿日時: 2011/8/25 14:57
対応状況: −−−
仙人
登録日: 2010/7/7
居住地: 神奈川県
投稿: 502
EC-CUBE ログ 表示
EC-CUBE Ver2.11.2
DBサーバー MySQL 5.5.10
WEBサーバー Microsoft-IIS/7.5
(WebMatrixで確認中)

既出であったら申し訳ありません。

site.logがSJISで記載されているのに、
管理画面→「システム設定」→「EC-CUBE ログ表示」の際、
SJIS → UTF8の変換処理が入っていないため、日本語文字が化ける。

(各環境設定まわりで出力エラーログの文字コードとか設定できるのか?未確認)

----備考---
もしかしたら・・・Win環境のみかもしれません。
SMTP接続エラーになっても、購入や会員登録は完了するんですね。
これはいいのか(ーー;)?
seasoft
投稿日時: 2011/8/25 15:06
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: EC-CUBE ログ 表示
> site.logがSJISで記載されているのに、

この動作が怪しいですね。
本来 UTF-8 で出力すべき性質のデータだと思います。


> SMTP接続エラーになっても、購入や会員登録は完了するんですね。

流れとしては、購入や会員登録が完了してから、メール通知が行なわれていたと思います。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

patapata
投稿日時: 2011/8/25 15:13
対応状況: −−−
仙人
登録日: 2010/7/7
居住地: 神奈川県
投稿: 502
Re: EC-CUBE ログ 表示
ふむ・・・やっぱしこの穴はないだろうなぁ〜と思ってましたが。
ちょっと追っかけてみます。

ちなみに化けたのは、
SMTP接続エラー・・・で以下の出力でたまたま見つけました。

[/html/entry/index.php] Failed to connect to 127.0.0.1:25 [SMTP: Failed to connect socket: 接続済みの呼び出し先が一定の時間を過ぎても正しく応答しなかったため、接続できませんでした。または接続済みのホストが応答しなかったため、確立された接続は失敗しました。
(code: -1, response: )]

(注:接続はできないようにしているのでエラーがでること自体は正しいです。)
また、site.logを一旦削除してもう一度、確認してみましたがやっぱりSJISで書き込まれてますね。
seasoft
投稿日時: 2011/8/25 15:31
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: EC-CUBE ログ 表示
PHP のエラー文言が SJIS でハードコーディングされているとか。

GC_Utils_Ex#gfPrintLog で直接日本語を書いても同じですか?


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

patapata
投稿日時: 2011/8/25 16:38
対応状況: −−−
仙人
登録日: 2010/7/7
居住地: 神奈川県
投稿: 502
Re: EC-CUBE ログ 表示
引用:

GC_Utils_Ex#gfPrintLog で直接日本語を書いても同じですか?

これは大丈夫です。

PEAR::Mailの仕様?ヘッダーとか見て決めてるのかとも思いましたが・・・いろいろ変えてみてもだめでした。

SC_SendMail.php

    function sendMail($isHtml = false) {
        $header = $isHtml ? $this->getHTMLHeader() : $this->getTEXTHeader();
        $recip = $this->getRecip();
        // メール送信
        $result = $this->objMail->send($recip, $header, $this->body);
            if (PEAR::isError($result)) {
                //↓これは大丈夫
                GC_Utils_Ex::gfPrintLog("大丈夫です");

                //↓ここのエラーがなんかSJISで必ずかえってくる
                GC_Utils_Ex::gfPrintLog($result->getMessage());
                GC_Utils_Ex::gfDebugLog($header);
                return false;
            }
        return true;
    }


--
私はまだまだPHPはあんま詳しくないので、このあたりの解析で限界です。まぁたいした場所でもないので放置でもよさそうですね。
seasoft
投稿日時: 2011/8/26 0:01
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: EC-CUBE ログ 表示
やはりそういう事ですね。

これは、EC-CUBE に限らず、素の PHP アプリでの PHP のログでも類似したような (エスケープされていて更に深刻だったような) 状況があったと記憶しています。

サーバのサポート先に、PHP のエラーを英語に戻す方法を確認してみては如何でしょうか。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

patapata
投稿日時: 2011/8/26 13:33
対応状況: −−−
仙人
登録日: 2010/7/7
居住地: 神奈川県
投稿: 502
Re: EC-CUBE ログ 表示
サーバ全て自前なので・・・
サポートも自分でしなきゃならんのです(ーー;)

またphp.iniいじくりまわしてみましたが、変化なしです。
おそらくインストールしたのが日本語化したものだったのだと思います。
(ググってもエラーメッセージの文字化け関連はうまくひっかからない)

まぁ環境依存だとわかったので、とりあえず該当部分のみコンバート処理いれて対応します。
どうもありがとうございました。

参考:SC_SendMail.php sendMail

//化けるので
//GC_Utils_Ex::gfPrintLog($result->getMessage());
$message = $result->getMessage();
if( strlen($message) == mb_strlen($messge) ){
	GC_Utils_Ex::gfPrintLog($message);
}else{
	//マルチバイト文字が含まれている場合
	GC_Utils_Ex::gfPrintLog(mb_convert_encoding($message,"UTF-8","SJIS"));
}
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,883名です
総投稿数は110,000件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1295
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.