ウェブサイト

管理画面

ファーストサーバーのトラブルによるウェブサイトの初期化により、とにかく全てを最初からやり直しの問題。

パスワード違いによるシステムエラーを解消したところ、次にも問題が…
EC-CUBEの管理画面に、パスワードが合わずに入れません。
契約時の「初期パスワード」が受け付けない。

どういうこっちゃ!

先日からサポートにはメールを出しているものの、解答はナシ。
こちらも自力で解決しなければならなそう。

ファーストサーバーのミスによるトラブルなのに、なんでこちらが苦労しなければならんのじゃ。
損害賠償なんてどうせ微々たる金額しか出ないのですから、せめてもっとサポート要因を増員して対応して欲しいですね。
ミスったこの週末、土日は休みなんてあり得ない!
復旧と同時に、サポートを社員総出で何とかしろって。

さて、イロイロと調べていくと管理画面のパスワードは忘れる人も多いらしく、定番のトラブルらしい。
ということで、回避方法も情報が豊富です。

管理画面のパスワードは、データベースの「dtb_member」テーブルに、sha1でエンコードをかけた状態で保存されているらしい。
さすがに平文では保存してないか、、、(汗)

ここを変更してしまえば、任意の文字列のパスワードに変わりますから、それでログインして再設定をし直せばいいということになります。

ということですが、データベースを直接いじるにはちょっと勇気がいります。
なので、他にもっと簡単な方法が無いかと探していくと…ありましたよ。

EC-CUBEのファイルに、

> data/class/pages/admin/LC_Page_Admin_Index.php

というのがあり、ここの記述を変えるとパスワードチェックを飛ばしてしまうために、どんなIDとパスワードでもログインが可能になるというものです。

function action() {

// パラメーター管理クラス
$objFormParam = new SC_FormParam_Ex();

switch ($this->getMode()) {
case 'login':

//ログイン処理
$this->lfInitParam($objFormParam);
$objFormParam->setParam($_POST);
//$this->arrErr = $this->lfCheckError($objFormParam);
if (SC_Utils_Ex::isBlank($this->arrErr)) {

$this->lfDoLogin($objFormParam->getValue('login_id'));
SC_Response_Ex::sendRedirect(ADMIN_HOME_URLPATH);

}else{

SC_Utils_Ex::sfDispError(LOGIN_ERROR);

}
break;

default:

break;

}

// 管理者ログインテンプレートフレームの設定
$this->setTemplate(LOGIN_FRAME);

}

この部分の、ウチのファイルだと83行目にあたりますが

> $this->arrErr = $this->lfCheckError($objFormParam);

の1行をコメントアウトしてしまいます。
これで無事に管理画面に入れたぁ~!

管理画面にログインできたら、すぐに新しいパスワードを設定して変更したファイルを元に戻しておくこと。
これ、重要です。

作業中は安全のため、.htaccessなどでBasic認証しておいた方がいいですね。

-ウェブサイト