新・元地方の中規模印刷会社で苦悩するWebデザイナー改めWebディレクターの日記

自由な20代、窮屈な30代を経て、遂に40代になっちまったWebディレクター&パソコン講師の覚書と思う言(こと)。略称【ちほちゅう】

*

さくらでEC-CUBEその後(商品検索でトラブル)

      2014/11/10

  • このエントリーをはてなブックマークに追加

ナイトリービルド版だからか、色々とトラブルが発生していますが、何とかやりくりし、今に至りました。
ちょっと前にダブルクォーテーション「”」がらみのトラブル解決法をお伝えしましたが、
今回は商品検索ができないトラブルが発生したのでそれに関するトラブル解決策をお伝えします。
□トラブル発生環境
トラブルが発生していたときのEC-CUBEのバージョンは「2.3.0-comu」。
ちょっと前のナイトリービルド版です。
□症状
具体的な症状としては商品検索のとき「商品カテゴリ」が「全ての商品」になっていると商品名で検索できない。
同時にケータイサイトでも検索できないといった状態でした。

スポンサーリンク
 

色々調べて下記サイトを見つけました。
無謀ですが・・・知識0でXREAにEC-CUBE導入 ナイトリービルド版eccube-comu-r17860時点でのエラー

data/class/pages/admin/products/LC_Page_Products_List.php
の475行目
$arrval_order = array_merge($arrval_category, $arrval_category);

$arrval_order = array_merge((array)$arrval_category, (array)$arrval_category);

こちらに解決策が書いてありますがなるべくならプログラムをいじりたくない。
そこで、プログラム修正の必要のある「data/class/pages/products/LC_Page_Products_List.php」を現在の正式版である「eccube-2.3.4」のものと入れ替えました。
(元記事と微妙にディレクトリ構成が違ってます)

これで解決? と思いきや、漢字で検索すると多くの確率で同じエラーが表示されます。

そこで今度は思い切って全体のバージョンアップに踏み切りました。
まずはWindows上でも解凍できるZIP形式もある正式版「eccube-2.3.4」をローカルで解凍して手動で上書きアップデート。
上書きすると、インストールもしなければならないのでデータベースの初期化をしないでインストール。

ところが、「eccube-2.3.3」の時同様文字化けが起こってしまいます。

もう、正式版よりもナイトリービルド版のほうがいいや。と、現在一番新しい「eccube-comu-r17927.tar.gz(バージョン2.3.3-comu)」を落としてきて、今度はリモート(SSH)で解凍。
入れ替えるも「2.3.0-comu」のときとまったく同じ症状。

最後に、この状態でもう一度、正式版「eccube-2.3.4」の「data/class/pages/products/LC_Page_Products_List.php」を上書きしてみましたがやはり漢字でエラーがでる。

あきらめかけていたころに以下の記事を発見。おお、神よ!!
HappyQuality ? [EC-CUBE][さくら]mysql_real_escape_stringで化ける

SC_DbConnのコンストラクタのDBとの接続を確立する箇所に

mysql_set_charset(“utf8”);

を追加することで、この問題が解消した。

つまり、「data/class/SC_DbConn.php」に上記ソースを書き込めばいいわけです。
で、ソースを書き込む場所だが、ちょうど一行開いていたので僕はここに入れました。

□入れる前

// コンストラクタ
function SC_DbConn($dsn = “”, $err_disp = true, $new = false){
global $objDbConn;

// Debugモード指定

□入れた後

// コンストラクタ
function SC_DbConn($dsn = “”, $err_disp = true, $new = false){
global $objDbConn;
mysql_set_charset(“utf8”);
// Debugモード指定

とりあえず、問題なく動いているようです。

まとめ

【1】 「data/class/pages/products/LC_Page_Products_List.php」を現在の公式版である「eccube-2.3.4」のものと入れ替える。
これにより、「商品カテゴリ」が「全ての商品」になっていても商品名で検索できるようになる。
【2】 「data/class/SC_DbConn.php」のソースを上記の通り書き換えて入れ替える。
これにより、さくらインターネット特有の2バイト文字検索によるエラーを回避できる。

つまり、二つのトラブルが重なっていたようです。
もう、大丈夫かなぁ。。

PS.上記【2】「SC_DbConn.php」の修正をした後に、エラー表示が出るようになってしまった場合は、「”」のトラブルの時に作った「php.ini」に「display_errors = off」を書き加えてください。

さくらインターネットでEC-CUBE
さくらインターネットでEC-CUBE #2(SSL対応編)

SAKURA Internet // さくらインターネット : 価値あるサービスと満足を提供するデータセンター
EC-CUBE‐日本発の「ECオープンソース」

ECサイト4モデル式 Google Analytics経営戦略 (ビジネスアスキー) (ビジネスアスキー)ECサイト4モデル式 Google Analytics経営戦略 (ビジネスアスキー) (ビジネスアスキー)
著者:権 成俊
販売元:アスキー・メディアワークス
発売日:2008-09-25
おすすめ度:5.0
レビューを見る

 - EC-CUBE, サーバー・ネットワーク, 覚え書き , ,

アドセンス広告メイン

Message

メールアドレスが公開されることはありません。

  関連記事

no image
自分で作った顔文字を辞書登録する方法【iPhone】

これは目からウロコなiPhoneの裏技。iPhoneではiOS4から顔文字が簡単 …

no image
タスクマネージャーでプロセスを調べてみた(Acer編)

いよいよ自分のAcerマシンがやばくなってきたので、かつてよくやっていたようにプ …

タスクマネージャーでプロセスを調べてみた part5

自宅でパソコン教室に使っているマルチOSのソーテックPC STATION S39 …

打つ意味あんの?インフルエンザの予防接種の効果は2割

なんと、インフルエンザの予防接種の効果は2割程度だということです。つまり、8割の …

no image
「変」は成功、「乱」は失敗、「役」は田舎での戦争のことらしい

こんなツイートが多くのリツイートを集めています。 これ分かってたら勉強捗ってたな …

11人しかフォロワーのいないmixiページですが流入があります

以前、「mixiページにアクセス解析、が意味があるのか疑問」を書いたときに参考に …

YouTubeでアップロード中にソーシャルゲーム(ソシャゲ)プレイは注意。通信エラーで最悪データ破壊も

たぶん、パズドラだけじゃなくて、他にも色々あるんじゃないかと思うのですが。。 ス …

自然界は「弱肉強食」ではなく、「全肉全食」、「適者生存」。社会(世の中)も同様

弱者は抹殺されません。これは自然界も同様。以下のYahoo!知恵袋の解答がなるほ …

FTPサーバーによる簡単データ転送

FTPサーバーを使って、自分のパソコン上のデータを簡単にやり取りができる方法です …

docomo(ドコモ)のスマホ(スマートフォン)で余計なサービスを削除(解約)する方法

最近は、大型量販店(イオン等)や家電量販店(ヤマダ電機等)でもケータイ(スマート …