バグ報告 > 管理機能 > 受注管理画面で商品の変更を行っても、規格情報がうまく反映されない |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
MPV |
投稿日時: 2011/6/27 15:19
対応状況: −−−
|
仙人 登録日: 2011/3/27 居住地: 投稿: 309 |
受注管理画面で商品の変更を行っても、規格情報がうまく反映されない 稼働環境
[EC-CUBE] 2.11.1 正式版 [レンタルサーバ] WADAX [OS] Red Hat Linux [PHP] PHP 5.1.6 [データベース] MySQL 5.0.77 [WEBサーバ] apache [ブラウザ] Firefox 4.0 Google Chrome IE9 開発環境 [EC-CUBE] 2.11.1 正式版 [レンタルサーバ] なし(開発用のXAMPP 1.7.4) [OS] Windows7 Professional [PHP] PHP 5.3.5 [データベース] MySQL 5.0.7 [WEBサーバ] apache 2.2.17 [ブラウザ] Firefox 4.0 以下の別スレッドでご相談をさせて頂いたりしていたのですが 要因が違うようですので、新たにスレッドを立てさせて頂きました。 【受注管理からの商品の追加】 http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=8250&forum=9&post_id=40131#forumpost40131 【商品の規格を再登録すると購入履歴詳細に商品情報が表示されなくなる】 http://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=flat&topic_id=8119&forum=9 事象は以下の通りです。 1)規格を2つ持つ商品を注文する 受注管理画面→編集から受注内容の詳細を確認する → 受注した商品の規格は正常に表示されている 2)正常に商品が見える状態から別途、規格のない商品の追加を行う → 規格のない商品、規格の2つある商品ともに正常に表示されている 3)追加後に、規格を2つ持つ商品を削除する → 規格のない商品だけが正常に表示されている 4)削除後に再度、規格を2つ持つ商品を追加する → 商品は追加されるが、本来規格がない商品の方に、 規格の2つある商品の規格内容が表示されてしまう 一方、規格が2つある商品の規格は表示されずに ”なし”になってしまいます 他の項目については、2行目に追加されているにも関わらず なぜか規格1、規格2のみ1行目を更新してしまいます。 追記)確認を進めましたところ、規格がある商品が追加される場合に 事象が発生するようです。(変更の場合は大丈夫のようですが、 商品が1件しかない場合に変更を押して規格のある商品を選択すると なぜか商品が追加されてしまい、同事象が発生します。) 別スレッドで、もしかすると data/Smarty/templates/admin/order/product_select.tplに 原因があるのではないかというお話も出たのですが、 まだ原因がわかっておりません。 もし、同様の事象のご対応をされました方や ご存知の方がいらっしゃいましたら、ご教授頂ければ 幸いです。 何卒よろしくお願いいたします。<(_ _)> |
MPV |
投稿日時: 2011/6/30 10:25
対応状況: 解決済
|
仙人 登録日: 2011/3/27 居住地: 投稿: 309 |
Re: 受注管理画面で商品の変更を行っても、規格情報がうまく反映されない 自己レスになります。
解決いたしました。 皆様より特にレスがなかったので もしかして環境依存ではと思い、 別の開発環境において、インストール直後の まっさらな状態で確認したところ、 再現しませんでした。 そこで、本日稼働環境でも確認したのですが やはり再現せず、当方の環境のせいのようでした。 大変お騒がせいたしました。 スレ汚しとなってしまいまして 申し訳ございませんでした。<(_ _)> |
taji |
投稿日時: 2011/7/1 11:18
対応状況: −−−
|
半人前 登録日: 2011/5/30 居住地: 投稿: 20 |
Re: 受注管理画面で商品の変更を行っても、規格情報がうまく反映されない MPV様
MPV様が提示された内容の手順で確認した所、私の環境で再現しました。 また、環境により再現されなかったとの事なので、 別の環境で試した所、再現しなかったです。 環境の違いで影響がありそうな所だと、PHPのバージョンあたりが怪しい感じがします。 ・再現した環境 EC-CUBE:2.11.1 OS:Debian GNU/Linux 6.0.1(squeeze) PHP:5.3.3-7+squeeze1 PostgreSQL:9.0.3 ブラウザ:FireFox5.0, IE8 ・再現しなかった環境 EC-CUBE:2.11.1 OS:Debian GNU/Linux 5.0.4(lenny) PHP:5.2.6-1+lenny9 PostgreSQL:8.4.3 ブラウザ:FireFox5.0, IE8 ※どちらの環境でもEC-CUBEはクリーンインストール直後の状態で確認。 レスが遅くてすみません。 |
taji |
投稿日時: 2011/7/1 15:02
対応状況: −−−
|
半人前 登録日: 2011/5/30 居住地: 投稿: 20 |
Re: 受注管理画面で商品の変更を行っても、規格情報がうまく反映されない 自己レスです。
ご存じの方、アドバイス頂けると助かります。 ・結果概要 LC_Page_Admin_Order_Edit.php:755行目 $arrValues = $objFormParam->getValue($key); の$arrValuesの値がPHP5.3.3とPHP5.2.6で異なっていました。 それはPHPのバージョンによって、 SC_FormParamClassのgetValueメソッド内で呼ばれている SC_Utils::isBlankの結果が異なる事で起きる事がわかりました。 PHP5.3.3の結果:true PHP5.2.6の結果:false ・質問 (1) どちらのバージョンでの結果が意図した動作結果なのでしょうか。 (2) SC_FormParamClass->getValue()[SC_FormParam.php:417行目]処理内のSC_Utils_Ex::isBlankチェックを、 キー名と一致したかのチェックに変更したら何か不具合が起こり得るでしょうか。 ・検証に使ったサンプルコード <?php include("SC_Utils.php"); $array[0] = ""; $ret = SC_Utils::isBlank($array); var_dump($ret); ?> ・検証結果 [PHP 5.3.3] # php -v PHP 5.3.3-7+squeeze1 with Suhosin-Patch (cli) (built: Mar 18 2011 17:22:52) Copyright (c) 1997-2009 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies # php sample.php PHP Warning: trim() expects parameter 1 to be string, array given in /var/www/default/data/class/util/SC_Utils.php on line 2064 bool(true) [PHP 5.2.6] # php -v PHP 5.2.6-1+lenny9 with Suhosin-Patch 0.9.6.2 (cli) (built: Aug 4 2010 03:25:57) Copyright (c) 1997-2008 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies # php sample.php bool(false) よろしくお願い致します。 |
nanasess |
投稿日時: 2011/7/1 15:36
対応状況: −−−
|
神 登録日: 2006/9/9 居住地: 投稿: 2311 |
Re: 受注管理画面で商品の変更を行っても、規格情報がうまく反映されない 引用:
空の配列は true を返すのが正しいです. ちなみに, 以下の環境では Warning は発生しませんでした $ php --version PHP 5.3.6 (cli) (built: May 10 2011 14:02:18) Copyright (c) 1997-2011 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies Mac OS X 10.6.8 引用:
「キー名に紐づく値が空の場合は $default の値を返す」というコードなのですが, 「キー名と一致したか」というチェックに変更する意図をご教示くださいますでしょうか. PHP5.3 未満で, 空の配列を渡した際に, false を返してしまう不具合は, 以下で修正した記憶があります. http://svn.ec-cube.net/open_trac/changeset/19895 SC_Utils::isBlank() の, どのあたりで false を返しているか, おわかりになりますでしょうか? |
taji |
投稿日時: 2011/7/1 16:17
対応状況: −−−
|
半人前 登録日: 2011/5/30 居住地: 投稿: 20 |
Re: 受注管理画面で商品の変更を行っても、規格情報がうまく反映されない nanasess様
引用: SC_Utils::isBlank() の, どのあたりで false を返しているか, おわかりになりますでしょうか? PHP 5.2.6ですとSC_Utilsの2066行目でfalseが返ってきます。 2065: if (strlen($val) > 0) { 2066: return false; 2067: } falseが返る直前の$valは下記値が入っていました string(5) "Array" 「※2066行目の直前にvar_dump($val);を入れて出力された結果。」 引用: 「キー名に紐づく値が空の場合は $default の値を返す」というコードなのですが, 「キー名と一致したか」というチェックに変更する意図をご教示くださいますでしょうか. よく考えてみたらちょっと見当違いでした。 |
nanasess |
投稿日時: 2011/7/1 16:27
対応状況: −−−
|
神 登録日: 2006/9/9 居住地: 投稿: 2311 |
Re: 受注管理画面で商品の変更を行っても、規格情報がうまく反映されない 引用:
どの時点で, 空の配列が "Array" という文字列に変化してしまっているか, わかりますでしょうか? また, 2041行目の is_array($val) は false を返しているのでしょうか? |
taji |
投稿日時: 2011/7/1 16:59
対応状況: −−−
|
半人前 登録日: 2011/5/30 居住地: 投稿: 20 |
Re: 受注管理画面で商品の変更を行っても、規格情報がうまく反映されない 引用:
どの時点で, 空の配列が "Array" という文字列に変化してしまっているか, わかりますでしょうか? この処理の後に変化してしまいます。 Line2065: $val = trim($val); trim前: array(1) { [0]=> string(0) "" } trim:後 string(5) "Array" 引用: また, 2041行目の is_array($val) は false を返しているのでしょうか? 2041行目の前に「var_dump(is_array($val));」を入れて出力した所下記結果となりました。 bool(true) bool(false) bool(false) falseが返る直前の結果は、「bool(false)」となっていました。 |
MPV |
投稿日時: 2011/7/1 21:44
対応状況: −−−
|
仙人 登録日: 2011/3/27 居住地: 投稿: 309 |
Re: 受注管理画面で商品の変更を行っても、規格情報がうまく反映されない taji様
お返事頂きましてありがとうございます。 nanasess様 いつもお世話になっております。 ありがとうございます。 taji様のご提起内容を拝見しまして (別の開発環境についての記載を 忘れていたこともありまして) 再度、自分の確認した環境について 以下に記載いたします。 稼働環境 [EC-CUBE] 2.11.1 正式版 [レンタルサーバ] WADAX [OS] Red Hat Linux [PHP] PHP 5.1.6 [データベース] MySQL 5.0.77 [WEBサーバ] apache [ブラウザ] Firefox 5.0 Google Chrome IE9 開発環境その1 [EC-CUBE] 2.11.1 正式版 [レンタルサーバ] なし(開発用のXAMPP 1.7.4) [OS] Windows7 Professional [PHP] PHP 5.3.5 [データベース] MySQL 5.0.7 [WEBサーバ] apache 2.2.17 [ブラウザ] Firefox 5.0 開発環境その2 [EC-CUBE] 2.11.1 正式版 [レンタルサーバ] なし(開発用のWebmatrix) [OS] Windows7 Professional [PHP] PHP 5.2.17 [データベース] MySQL 5.1.57-community [WEBサーバ] Microsoft-IIS/7.5 [ブラウザ] Firefox 5.0 稼働環境、開発環境その2では起こらず、 開発環境その1でのみ事象が再現いたしますので taji様のご提起内容と合致しているように 思われます。 お役に立たない情報かもしれませんが・・・、 一応ご報告させて頂きます。 |
nanasess |
投稿日時: 2011/7/1 22:25
対応状況: −−−
|
神 登録日: 2006/9/9 居住地: 投稿: 2311 |
Re: 受注管理画面で商品の変更を行っても、規格情報がうまく反映されない 引用:
もしかして, PHP5.2.x では 2046行目の foreach に, 上記の配列が入らないんでしょうか? |
(1) 2 3 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |