新しい顧客をクリックするとエラーor検索出来ない【zencart】
カテゴリー:ZenCart
zencartの管理画面には“新しい顧客”というのがあります。

zencartのインストール完了後、日本語のユーザが追加された場合、名前をクリックすると検索出来ない場合があります。

出力されたエラー
1139 Got error ‘brackets ([ ]) not balanced’ from regexp
in:
[select count(*) as total from zen_customers c left join zen_customers_info ci on c.customers_id= ci.customers_info_id left join zen_address_book a on c.customers_id = a.customers_id and c.customers_default_address_id = a.address_book_id where c.customers_lastname like '%や[j#' or c.customers_firstname like '%や[j#' or c.customers_email_address like '%や[j#' or a.entry_telephone rlike 'や[j% or a.entry_company rlike 'や[j% or a.entry_street_address rlike 'や[j% or a.entry_city rlike 'や[j% or a.entry_postcode rlike 'や[j% or c.customers_firstname_kana like '%や[j#' or c.customers_lastname_kana like '%や[j#' or a.entry_firstname_kana like '%や[j#' or a.entry_lastname_kana like '%や[j#']
If you were entering information, press the BACK button in your browser and re-check the information you had entered to be sure you left no blank fields.
最初は文字コードの問題かなと思いましたが、違いました。
理由は、IE等の場合、URLがエンコードされずに、マルチバイトのまま引数として使われているからとのこと。
ちょっと難しいですね。
今回は、インストールしているXamppでzencartを動かしてたんですが、URLが以下のようになってました。
http://localhost/zencart/admin/customers.php?search=ゆーざ&origin=index
“ゆーざ”と、そのまま使われてますね。
Firefoxではちゃんと変換してくれてます。
http://localhost/zencart/admin/customers.php?search=%A4%E6%A1%BC%A4%B6&origin=index
対策方法は、zencartのバージョンが1.3の場合は、admin/index.phpの136行目の途中にある以下を変更するとうまくいきます。
変更前
'search=' . $customers->fields['customers_lastname']
変更後
'search=' . urlencode($customers->fields['customers_firstname'])
参考URL
☆Zen-Cart.JP コミュニティ掲示板 • トピックの表示 – 管理画面のindex.phpのバグについて
☆Zen-Cart.JP コミュニティ掲示板 • トピックの表示 – 顧客が消えてる
[環境]
zencartバージョン:Zen Cart 1.3.0.2-l10n-jp-3
サーバ環境:xampp(Xserverでも確認済み)






埼玉県蕨市,川口市,戸田市,さいたま市中心に地域密着対応中!