2015年10月の記事

ECCUBE2.13でログイン時にlogin_error等の文字だけ表示される

ECCUBE2.13で会員ログインしようとすると、
真っ白な画面に以下のメッセージが表示される。

{"login_error":"\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3082\u3057\u304f\u306f\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093\u3002"}

以前の記事で同様の症状が出て、直せたと思っていたのは勘違いだった模様。

Google検索すると、
パラメータ設定の「DEVICE_TYPE_SMARTPHONE」がPC用の「DEVICE_TYPE_PC」と同一の場合にこのようになる。PCと違う値にすればOKという記載がありました。

今回のサイトでは、レスポンシブを採用したので、PCとスマホ同一ソースを出す必要があるため、DEVICE_TYPE_SMARTPHONEをPCと同じ数値にしていました。

異なる数値にはできないので、
端末の振り分け部分を修正することにしました。

data/class/SC_Display.phpの
端末の判定部分をコメントアウトし、すべてPCとして扱うよう変更。
(ガラケーサイトはつくってないのでついでにコメントアウト)

public static function detectDevice($reset = FALSE)
{
if (is_null(SC_Display_Ex::$device) || $reset) {
$nu = new Net_UserAgent_Mobile();
$su = new SC_SmartphoneUserAgent_Ex();
// if ($nu->isMobile()) {
// SC_Display_Ex::$device = DEVICE_TYPE_MOBILE;
// } elseif ($su->isSmartphone()) {
// SC_Display_Ex::$device = DEVICE_TYPE_SMARTPHONE;
// } else {
SC_Display_Ex::$device = DEVICE_TYPE_PC;
// }
}

return SC_Display_Ex::$device;
}


data/cache内のファイルを削除して、
再度アクセスし、正常な表示になっていることを確認しました。

以前の記事で直せたと思ったのは、どうもキャッシュの更新のタイミングで直ったように見えただけじゃないかと思っています。


2015.12.08追記
同じ状態になりました。
よく分かりませんが直ってなかったようです。

data/class/pages/frontparts/LC_Page_FrontParts_LoginCheck.phpの
SC_Display_Ex::detectDevice() === DEVICE_TYPE_SMARTPHONE
部分をすべてはずして、全てPC扱いに変更したら直りました。

2015.10.27掲載