EC-CUBE 2.4系で規格が正しく登録出来なくなった件

知人からEC-CUBEのショッピングサイトで、規格(色-サイズなど)が中途半端にしか登録出来なくなったという相談あり。このサイトのことは良く知っているので状況をヒアリングしたところ、規格の組み合わせが非常に多いものを登録しようとしたら、途中までしか登録出来ないとのこと。

具体的には、ワッペンとなるアルファベットを二つ選べる商品にしているので、選択項目肢としてプルダウンメニューが二つ表示されるページの仕様。AからZまでで26個。これを縦軸と横軸に考えると26✕26=676個の組み合わせとなる。EC-CUBE 2.11からはツリー状にDB構成が改良されたらしいが、2.4系はマトリックス状にもれなく生成されるので規格の組み合わせが多い場合のトラブルは目にすることが多かったと記憶。

調べたところ、EC-CUBEのシステムパラメータでは制限かけている箇所が無いので、PHPの環境で制限がかかっているものと推測。PHPの情報を調べてみた。すると「max_input_vars」という項目がこのトラブルの原因として合致しそう。簡単に調べてみたところPHP5.3.9以降から実装されたらしい。

レンタルサーバーの関係で、php.iniを直接触ることは出来ない。.htaccessに下記の様に記述して数値を調整してみた。

この値が6000以下ではリクエストが中途半端にカットされる。7000にすることでA-Aを始めとしてZ-Zの組み合わせまで登録できるようになった。単なる組み合わせだけでなく付随する情報も送信される為、掛け算で計算した値の数倍の許容値が必要になる訳だ。しかし闇雲に数値を増やすとセキュリティ面での意味がなくなる。とは言っても研究しているわけでは無いから細かく調査するまでも無いので7000~8000辺りで制限しておけば良いという事になった。

知人はEC-CUBE 2.4系でカスタマイズしたショップサイトを運用しているので、この制限がつきまとうわけだが、この様な問題が今頃浮上した原因はレンタルサーバーを移転したからだ。移転前はPHPやDBのバージョンが古くて色々な不都合があった。そこでレンタルサーバーをより環境の新しいものに移行した訳だが、移転の際にはこの問題に気付かなかった。なぜなら今回の様に規格の組み合わせが多い商品を登録するまでこの様な制限に引っかかる事がわからなかったからだ。

Webの世界はどんどん進化しているし、色々な問題も浮上してくる事から環境の変化が忙しい。完全に追従していくには常に最先端の情報をキャッチしながら消化していなくては実現出来ないだろう。現実的なところ、今回の様に不具合に遭遇した際に何が原因と考えられるかという嗅覚を養っておく位なものではないかと思う。

いずれにしても連絡をもらった翌日には対処方法を提示出来たので良かったと思う。

EC-CUBE 2.4系で規格が正しく登録出来なくなった件” への1件のコメント

  1. ピンバック: CentOS 6.5をVirtualboxで検証する | S-Factory

コメントを残す