バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 注文完了ページ・メールで特定の支払方法を選択すると支払い情報が抜けエラーが出てしまいます。

フロント機能

新規スレッドを追加する

| 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
masumi
投稿日時: 2009/4/16 14:22
対応状況: −−−
半人前
登録日: 2008/10/22
居住地:
投稿: 25
Re: 注文完了ページ・メールで特定の支払方法を選択すると支払い情報が抜けエラーが出てしまいます。
お世話になります。

ramrun様
ご返信ありがとうございます。

引用:

ramrunさんは書きました:
あれ? ちょっとまってください。
$this->conn = $objDbConn;
if (!PEAR::isError($this->conn)) { $this->conn->query("SET NAMES utf8");}
$this->error_mail_to = DB_ERROR_MAIL_TO;
$this->error_mail_title = DB_ERROR_MAIL_SUBJECT;
$this->err_disp = $err_disp;
$this->dbFactory = SC_DB_DBFactory_Ex::getInstance();

もうなってますね(汗)。

インストールはどうやりました?
WADAXのEC-CUBEは自動インストール?

ダウンロードして、自分でインストールしました。
その後、公式サイトの脆弱性一覧を参考に、対象ファイルを修正したり、しました。
でも、該当のファイルはいじっていません。

宜しくお願いします。
ramrun
投稿日時: 2009/4/16 14:45
対応状況: −−−
仙人
登録日: 2006/11/3
居住地:
投稿: 789
Re: 注文完了ページ・メールで特定の支払方法を選択すると支払い情報が抜けエラーが出てしまいます。
いまeccube-2.3.0.zipをダウンロードして中をみてみましたが、SC_DbConn.phpに
if (!PEAR::isError($this->conn)) { $this->conn->query("SET NAMES utf8");}
の記述はありません。

引用:
でも、該当のファイルはいじっていません。
となると??
どのタイミングでそれが記述されたのかが気になりますが、今回の件とは関係ないので...

とりあえずserializeした文字をDBに格納する前のデータを確認できますか?
そのデータ既に" {"や"?"があるでしょうか?
(「から」は「〜」に戻して)
masumi
投稿日時: 2009/4/16 15:01
対応状況: −−−
半人前
登録日: 2008/10/22
居住地:
投稿: 25
Re: 注文完了ページ・メールで特定の支払方法を選択すると支払い情報が抜けエラーが出てしまいます。
お世話になります。

ramrun様
ご返信ありがとうございます。

引用:

ramrunさんは書きました:
いまeccube-2.3.0.zipをダウンロードして中をみてみましたが、SC_DbConn.phpに
if (!PEAR::isError($this->conn)) { $this->conn->query("SET NAMES utf8");}
の記述はありません。

引用:
でも、該当のファイルはいじっていません。
となると??
どのタイミングでそれが記述されたのかが気になりますが、今回の件とは関係ないので...

???
何ででしょうか・・・?
ファイルの更新日時を確認しても、インストールした日付のままなので・・・。

引用:

とりあえずserializeした文字をDBに格納する前のデータを確認できますか?
そのデータ既に" {"や"?"があるでしょうか?
(「から」は「〜」に戻して)

大変申し訳ないのですが、データの確認方法がわかりませんので、重ね重ね本当に申し訳ないのですが、確認方法をお教えいただけますでしょうか?
大変お手数をお掛けいたしますが、何卒宜しくお願い申し上げます。
ramrun
投稿日時: 2009/4/16 15:53
対応状況: −−−
仙人
登録日: 2006/11/3
居住地:
投稿: 789
Re: 注文完了ページ・メールで特定の支払方法を選択すると支払い情報が抜けエラーが出てしまいます。
ですよね(汗)。

私もどこでやっているのかすぐにわからないので、

test.php(UTF-8で作成)
<?php
$str = "4桁〜7桁";
print serialize($str);
?>
でブラウザからアクセスして4桁〜7桁と表示されてればserializeで変なことになっていないかは確認できると思います。

mdl_fregiのあたりを見てみましたが、DBとのやり取りはSC_Helper_DBやSC_Queryを使っていて、その中ではSC_DbConnを使っているので
if (!PEAR::isError($this->conn)) { $this->conn->query("SET NAMES utf8");}
が効いていると私の予想はハズレってことになりますね(汗)。

正直、手詰まりかも...
masumi
投稿日時: 2009/4/16 16:22
対応状況: −−−
半人前
登録日: 2008/10/22
居住地:
投稿: 25
Re: 注文完了ページ・メールで特定の支払方法を選択すると支払い情報が抜けエラーが出てしまいます。
お世話になります。

ramrun様
ご返信ありがとうございます。
早速試してみました!
結果は、
----------------------------
s:11:"4桁〜7桁";
----------------------------
と表示されました。

う〜ん・・・何なんでしょうね。
すみません、ご迷惑ばかりお掛けしてしまって・・・。
本当にありがとうございます。
宜しくお願いします。
ramrun
投稿日時: 2009/4/16 16:59
対応状況: −−−
仙人
登録日: 2006/11/3
居住地:
投稿: 789
Re: 注文完了ページ・メールで特定の支払方法を選択すると支払い情報が抜けエラーが出てしまいます。
ではこれで最後です。

phpmyadminより、eccubeのデータベースに切り替えて、SQLより下記を実行した結果を教えてください。

SHOW VARIABLES LIKE 'character_set%';

SHOW VARIABLES LIKE 'collation%';


こちらの環境ではとりあえず、DBもしくはTableがujisで作成されているときに、〜が?になります。

 PHP(UTF-8)<--> MySQL connection(UTF-8) <--> MySQL DB or Table(ujis)
masumi
投稿日時: 2009/4/16 21:43
対応状況: −−−
半人前
登録日: 2008/10/22
居住地:
投稿: 25
Re: 注文完了ページ・メールで特定の支払方法を選択すると支払い情報が抜けエラーが出てしまいます。
お世話になります。

ramrun様
本当にありがとうございます。
また、ご返信が遅くなってしまい、申し訳ありませんでした。
早速試してみましたので、下記に結果を記載いたします。

SHOW VARIABLES LIKE 'character_set%';

character_set_client utf8
character_set_connection utf8
character_set_database ujis
character_set_results utf8
character_set_server ujis
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/

SHOW VARIABLES LIKE 'collation%';

collation_connection utf8_unicode_ci
collation_database ujis_japanese_ci
collation_server ujis_japanese_ci

すみません・・・
これが原因でって事ですよね・・・

本当にお手数ばかりお掛けして申し訳ありません。
宜しくお願い致します。
seasoft
投稿日時: 2009/4/17 6:15
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 注文完了ページ・メールで特定の支払方法を選択すると支払い情報が抜けエラーが出てしまいます。
スイマセン。昨日は忙しく、一日中書き込みできませんでした。

引用:
>fregi_conveni_lawson.phpの4桁〜7桁を4桁から7桁とかに変えたら動きますか?
動きました!!!
正常に処理がされました!!!!
注文完了ページにも支払い情報が表示され、またメールにもちゃんと表示されるようになりました!!!
本当に本当にありがとうございました。

ramrun様も書かれている通り、原因が重要ですね。そして、原因が分かると他にも問題があることが分かってくると思います。

とりあえず、ユーザが「〜」を入力したときに、DB登録時に化けますよ。「〜」以外にも、UTF-8 で使用可能で、EUC-JP で使用できない文字では、同様の問題が発生する確率が高いと想像できます。

シリアライズ・アンシリアライズする処理が挟まらなければ、単に文字化けで済みますが、注文工程では、memo02 以外にもシリアライズする処理があったと思います。


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

seasoft
投稿日時: 2009/4/17 6:29
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 注文完了ページ・メールで特定の支払方法を選択すると支払い情報が抜けエラーが出てしまいます。
引用:

seasoftさんが書いている
引用:
文字コードのマッピングが関わっていそうです。

どの階層に原因があるか、特定はできていませんが、
> DBバージョン MySQL 4.1.22
の問題かも。

だとすれば、MySQL 4.1系を使っている人は要注意ですね。

上でも書いたとおり、当方環境では MySQL 5 でも再現しました。
EUC-JP (MySQL で言う ujis ) が関与すると、バージョンに関わらず発生しそうです。

PostgreSQL でも試そうと思いましたが、当方テスト環境では EUC_JP は拒否されてテストできませんでした。


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

seasoft
投稿日時: 2009/4/17 6:40
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 注文完了ページ・メールで特定の支払方法を選択すると支払い情報が抜けエラーが出てしまいます。
引用:

collation_connection utf8_unicode_ci
collation_database ujis_japanese_ci
collation_server ujis_japanese_ci

すみません・・・
これが原因でって事ですよね・・・


collation_connection utf8_unicode_ci ← OK
collation_database ujis_japanese_ci ← NG
collation_server ujis_japanese_ci ← 共有サーバなら仕方が無いかも

EC-CUBE のインストール時に、頭一発
ALTER DATABASE <DB名> DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
を流すことを検討しても良さそうですね。

それか、エンコーディング違いを検出して、アラートするか。


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

« 1 2 3 4 (5) 6 »
| 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は89,585名です
総投稿数は110,139件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1656
8
red
1570
9
mcontact
1318
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.