タグ別アーカイブ: ログイン

EC CUBE 2.13.3 カスタマイズ 会員ログイン画面がおかしくなったのを直す直し方

こんにちは。nekonomoridesginのYoshyです。
相変わらず、お仕事でEC-CUBEとにらめっこです。先日、レスポンシブウェブデザインの方法についてお話をしましたが、そのやり方として、管理画面のパラメーター設定で

DEVICE_TYPE_SMARTPHONE
DEVICE_TYPE_PC
0
の数字を、PCにあわせる(両方10にする)というのでレスポンシブウェブデザインに対応させていたのですが、その弊害が発生しました。

何気に、作ったサイトのチェックをしていたところ、会員ログインのところで、こんなエラー画面に遭遇。

1

どうやら、ログインには成功しているようだが、何かタグっぽいのがechoで吐き出されているよう・・・。

何故??

と、また困惑。

実は、この画面のまま1日放置しました・・・(笑)
次の日になったら直ってないかなーーーー・・・なんて思って(・_・;)

直ってませんでした。(そりゃそうだ

で。またにらめっこ。

にらめっこしたのは

data/class/pages/frontparts/LC_Page_FrontParts_LoginCheck.php

というファイル。(エラーの画面みたら、LoginCheck.phpだったので・・)

で、よく見ると、なんとなーーーーくデバイスで表示を分けてそうな箇所を発見。

DEVICE_TYPE===SMARTPHONE

見たいな感じのをみつけて、もしやこれか?と思ってそのif文の中をいじり倒しました。

そしたら、elseの分岐でechoを発見。

場所を確認するために

echo SC_Utils_Ex::jsonEncode(array(‘success’ => $url));
となっているところに、
echo SC_Utils_Ex::jsonEncode(array(‘success’ => $url)).”ここか!”;

※ちなみにechoとは、echoの次に書かれているものをそのまま表示するという意味を持つ命令文。

とやってみたら、 ここか! の文章がくっついてました・・・(笑)

なので、そこを修正します。
具体的な方法は以下。

直すファイル LC_Page_FrontParts_LoginCheck.php
場所は↓
data/class/pages/frontparts/LC_Page_FrontParts_LoginCheck.php

直すトコロ。
139行目: echo SC_Utils_Ex::jsonEncode(array(‘success’ => $url));

139行目://echo SC_Utils_Ex::jsonEncode(array(‘success’ => $url));

140行: SC_Response_Ex::sendRedirect($url);
を追加。

159行目:$this->lfGetErrorMessage(TEMP_LOGIN_ERROR);

159行目://echo $this->lfGetErrorMessage(TEMP_LOGIN_ERROR);

167行目:echo $this->lfGetErrorMessage(SITE_LOGIN_ERROR);

167行目://echo $this->lfGetErrorMessage(SITE_LOGIN_ERROR);

160行目:SC_Response_Ex::actionExit();
を追加

169行目:SC_Utils_Ex::sfDispSiteError(SITE_LOGIN_ERROR);
を追加。

98行目:echo $this->lfGetErrorMessage(TEMP_LOGIN_ERROR);

98行目://echo $this->lfGetErrorMessage(TEMP_LOGIN_ERROR);

99行目:SC_Utils_Ex::sfDispSiteError(TEMP_LOGIN_ERROR);
を追加。

これで解決しました。

最初、成功の時しか直してなくて、パスワード間違えたときなどのエラー画面でまたechoだったので、コレだけの箇所を直さないといけません。

是非お困りの方がいらっしゃいましたら、参考にしてみてくださいね。

2.13系は本当まだ情報少なくて悪戦苦闘です(つд・)ガンバルゾー