バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

バグ報告 > 管理機能 > 規格の設定数を増やすと規格設定したすべてが反映されない

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
mizuvan
投稿日時: 2014/11/6 11:54
対応状況: −−−
長老
登録日: 2013/3/26
居住地:
投稿: 253
規格の設定数を増やすと規格設定したすべてが反映されない
規格?に3個
規格?に27個

計81通りの商品を登録しようとすると

商品管理>商品登録(商品規格) で商品に規格を適応する画面で

全選択して確認ページへいくと81個中54個しかチェックできない

ただ、その後商品データを確認すると81個が規格は登録済み

この状態でCSVをアップロードで編集しというとすると
アップロード時にサーバーエラーが発生します。

500 error
Internal Server Error
CGIもしくはSSIが正しく動作していません。
レンタルサーバー
以下の状況が考えられます。
• 指定されたページの CGI が異常終了している。
• 指定されたページの CGI のパーミッションが間違っている。
• 指定されたページの CGI が間違ったモードで転送されている。


php_value max_input_vars 1000 の条件です。

EC-CUBEバージョン:2.13.2
PHP情報:5.3.28
DB情報:MySQL 5.6.13-log
yuh
投稿日時: 2014/11/6 12:31
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 規格の設定数を増やすと規格設定したすべてが反映されない
一つの規格に対して15〜20程度の項目があるので、
15〜20 × 81で1215〜1620くらいPOSTする項目があります。
なのでphp_value max_input_vars 1000 の条件を超えたのが原因です。

CSVのエラーに関してはエラーログをお願いします。
mizuvan
投稿日時: 2014/11/6 16:23
対応状況: −−−
長老
登録日: 2013/3/26
居住地:
投稿: 253
Re: 規格の設定数を増やすと規格設定したすべてが反映されない
ありがとうございます

ちなみにこの状況がエックスサーバーでしたら問題なく動作いたしました。
エックスサーバーでは、max_input_varsの設定は特にしていません。

ヘテムルですと今回のmax_input_varsが 1000までと制限されていますので無理ということのようですね・・・

エラーログは下記の通りです。

/data/logs/error.log

引用:
2014/11/06 12:41:11 [*****/products/upload_csv.php] Warning(E_WARNING): constant(): Couldn't find constant on [*****/data/class/pages/admin/products/LC_Page_Admin_Products_UploadCSV.php(352)] from ***.***.***.***


ただ、今回CSVのアップロード時だけでなく管理画面上での操作でも登録ができていません。


あと、教えていただいた件で詳しくお聞きしたいのですが

引用:
一つの規格に対して15〜20程度の項目があるので、
15〜20 × 81で1215〜1620くらいPOSTする項目があります。
なのでphp_value max_input_vars 1000 の条件を超えたのが原因です。

CSVのエラーに関してはエラーログをお願いします。


1つの規格に対して15〜20項目ということでしたら
今回81通りのところを50通りに抑えたら50通り×最大20項目として1000としておけばこの点については問題がないという解釈でも良いものなのでしょうか
yuh
投稿日時: 2014/11/6 17:23
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 規格の設定数を増やすと規格設定したすべてが反映されない
一応ループ内のPOSTされる数をざっくり数えただけなのでループ外のものも含まれます。
ごまかしとして、ダウンロード商品を使用しないのであれば
その部分をごっそり排除するとか、
product_type_idは一つしか使わないのであれば、その部分を消してしまって、PHP側で受け取って使う部分に固定値を入れてしまう等で限界は少し上がると思います。
テンプレート内のソースを確認していただくのがよろしいかと思います。
mizuvan
投稿日時: 2014/11/6 18:52
対応状況: −−−
長老
登録日: 2013/3/26
居住地:
投稿: 253
Re: 規格の設定数を増やすと規格設定したすべてが反映されない
なるほど、そういった考え方ができるわけですね

アドバイスいただき大変助かります!

利用しないものを排除していけばもう少し増やせそうです

項目数とはたとえば

dtb_classのテーブルで
class_id、name、rank、creator_id、create_date、update_date、del_flg

dtb_classcategoryのテーブルで
classcategory_id、name、class_id、rank、creator_id、create_date、update_date、del_flg

これらの参照?する個数のことを考えていけばよいという意味なのでしょうか
yuh
投稿日時: 2014/11/6 23:30
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 規格の設定数を増やすと規格設定したすべてが反映されない
product_class.tplの
<input type="hidden" name="<!--{$key}-->[<!--{$index}-->]" value="<!--{$arrForm[$key].value[$index]|h}-->" />
の部分でproduct_type_idやdown_filename、down_realfilename、tax_rate等を消してしまって、INSERT/UPDATEする部分で固定値で入れてしまえばPOSTする値を減らすことができると思います。
mizuvan
投稿日時: 2014/11/7 10:45
対応状況: −−−
長老
登録日: 2013/3/26
居住地:
投稿: 253
Re: 規格の設定数を増やすと規格設定したすべてが反映されない
固定値で入れるという意味がまだよく判らず調べていますが・・・

たとえば、下記のような文があるとしたら

        $objFormParam->addParam('規格名', 'name', STEXT_LEN, 'KVa', array('EXIST_CHECK' ,'SPTAB_CHECK' ,'MAX_LENGTH_CHECK'));


EXIST_CHECKやSPTAB_CHECKを外すことで負担を減らせるものなのでしょうか?
yuh
投稿日時: 2014/11/7 11:17
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 規格の設定数を増やすと規格設定したすべてが反映されない
たとえば商品が実際の商品しかなくて、ダウンロード商品を使用しないのであれば


        $objFormParam->addParam('ダウンロード販売用ファイル名', 'down_filename', STEXT_LEN, 'KVa', array('MAX_LENGTH_CHECK'));
        $objFormParam->addParam('ダウンロード販売用ファイル名', 'down_realfilename', STEXT_LEN, 'KVa', array('MAX_LENGTH_CHECK'));
$objFormParam->addParam('商品種別', 'product_type_id', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'));
        $objFormParam->addParam('ファイルアップロード用キー', 'upload_index', STEXT_LEN, 'KVa', array('MAX_LENGTH_CHECK'));


この部分を削除してしまい、

$arrPC['product_type_id'] = SC_Utils_Ex::isBlank($arrPC['product_type_id']) ? 0 : $arrPC['product_type_id'];

この部分を

$arrPC['product_type_id'] =1;

にして、HTML側のproduct_type_id・down_filename・down_realfilename・upload_indexの<input type>をそのまま削除してしまう感じですね。

mizuvan
投稿日時: 2014/11/7 12:40
対応状況: −−−
長老
登録日: 2013/3/26
居住地:
投稿: 253
Re: 規格の設定数を増やすと規格設定したすべてが反映されない
とてもわかりやすい説明をいただき感謝します!

理屈がよくわかりました。

あと、教えていただいた内容で不要な項目を排除し

規格を2つ使っていたところを1つに絞り項目数は50個としました。

300商品あるうちの1つだけにこの規格の設定をしてCSVアップロードに成功はしたのですが、15商品ぐらいに規格を設定した場合にCSVアップロードしたところ今回問題となっていた一緒のエラーになってしまいました。

この結果から、仕組みがよくわからなくなっているのですが
商品数が増えればまた何かしらの許容値を超えること(例えば、php_value max_input_vars 1000 の値など)がありうるのでしょうか



yuh
投稿日時: 2014/11/7 12:42
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 規格の設定数を増やすと規格設定したすべてが反映されない
CSVに関しては結構途中で止まったりするので、ブラウザからのアップロードではなく、FTPでのアップロードに切り替えたりするとうまくいったりしました。

(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,838名です
総投稿数は109,985件です

投稿数ランキング

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
1291
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.