2013年11月19日
Zen Cart1.3.0.2 EUC-JP版とPHP5.4の組み合わせで日本語(マルチバイト文字)が表示されない障害
以前からZen Cartを利用してきた方は、1.3.0.2のEUC-JP版を PHP5.3以前が稼働するウェブサーバーで運用してきたと思います。一方 PHP5.3系のセキュリティFixが2014年6月20日には終了する というアナウンスがあり、PHP5.4系にアップグレードしようと考えている方も多いでしょう。
弊社で試してみたところ Zen Cart1.3.0.2のEUC-JP版をPHP5.4の環境に入れると日本語が表示されなくなる場合がある という問題に遭遇しました。
これは、htmlspecialchars()を利用した出力をしている箇所で問題が発生します。
下記の記事が大変参考になります。
具体的には下記に示しますが、一見するとPHP5.4でうまく動いているように見えてしまうことがあります。フォームから日本語を入力してみると気がつくなど、この問題を知らないと対処が遅れてしまう可能性もあるのでご注意ください。
- ケース1:
- 商品管理から商品の編集→プレビュー→更新したら、商品管理の商品一覧で商品名などが消えてしまう
原因: プレビュー画面のinputタグのhiddenで渡すパラメータにhtmlspecialchars()が掛かっているが、これが上記の問題を起こし、消えてしまう。
- 商品管理から商品の編集→プレビュー→更新したら、商品管理の商品一覧で商品名などが消えてしまう
▲1.商品名や商品詳細に日本語で記述してある状態
(※図版はクリックで拡大します)
▲2.preview時はちゃんと表示されているが...
(※図版はクリックで拡大します)
▲3.更新すると消えてしまう
(※図版はクリックで拡大します)
- ケース2:
- フロント側でユーザーが日本語で会員登録後、配送先・請求先の住所で名前や市区町村以下の住所が消えてしまう
原因: 画面出力時にhtmlspecialchars()が掛かっているので、DBには登録されているが出力されない
- フロント側でユーザーが日本語で会員登録後、配送先・請求先の住所で名前や市区町村以下の住所が消えてしまう
▲1.会員登録で「秋葉テスト」で登録した
(※図版はクリックで拡大します)
▲2.登録完了画面【続ける】で配送先画面へ
3.東京都以外の住所と名前が消えてしまった
(※図版はクリックで拡大します)
PHPのバージョンを確認するには
Zen Cartの管理画面から「追加設定・ツール>サーバ情報のチェック」で『PHP バージョン』と書いてある箇所を調べます。
問題のないZen Cartのバージョンは?
Zen Cart 1.5系では、以下のように第3引数も強制的に指定するようになっているので、問題ありません。
htmlspecialchars(stripslashes($value), ENT_COMPAT, CHARSET, TRUE) ※第3引数の「CHARSET」は includes/languages/japanese.php で指定。
1.3.0.2のUTF-8版もPHP5.4のhtmlspecialchars()のデフォルトがUTF-8なので、問題なく動きます。
対処方法
- 1.5系(もしくは1.3.0.2のUTF-8版)に更新する
- PHP5.3を使う(2014年6月20日以降はセキュリティ面の不安があるため推奨しません)
Zen Cartのバージョンアップ、トラブル対応は弊社でも対応可能です。
ご興味がありましたらお問い合わせください。
カテゴリー: Zen Cart(オンラインショップ構築)
タグ: オンラインショップ , ECサイト , PHP5.4 , Zen Cart
« 前の記事:【Movable Type】MT6の最新情報と活用ポイント紹介のセミナーに登壇します
» 次の記事:北米NGO/NPOの7割はコンテンツマーケティングを去年より強化、第一目的はファンドレイジング、Facebookをよく使う(CMIのレポートから)
アークウェブの本
Zen Cartによるオンラインショップ構築・運用テクニック―オープンソース徹底活用
内容充実のZen Cart公式本(v1.3対応)がついに発表です。アークウェブのスタッフをはじめZen-Cart.JPの中心メンバーが共著で執筆しました。続きを読む
新着はてブ
カテゴリー
- Shopify(ショピファイ)オンラインショップ構築
- NGO・NPO向け情報
- スマートフォン
- だれもが使えるウェブコンクール
- mixiアプリ
- OpenSocial (システム開発)
- アークウェブのCSR
- A-Form, A-Member, A-Reserve(MTプラグイン)
- Ruby on Rails(システム開発)
- necoったー
- Miqqle
- WebSig24/7
- ecoったー
- ビッグイシュー(The Big Issue)
- CSR(企業の社会的責任)
- マッシュアップ
- RIA (システム開発)
- セキュリティ(システム開発)
- 唐松(アクセス解析)
- Ajax (システム開発)
- テスト(システム開発)
- データベース
- PukiWiki
- Web 2.0
- SEO・サーチエンジン最適化
- XP・アジャイル(システム開発)
- Web・ITニュースクリップ
- Webアクセシビリティ
- Webデザイン
- SEM・サーチエンジン広告
- Webユーザビリティ
- CMS・MovableType
- Zen Cart(オンラインショップ構築)
- Snippy(SNS・ソーシャルブックマーク)
- アークウェブ
- オープンソース
- CMS(コンテンツマネジメント・システム)
- Webマーケティング
- AMP
- SNS