CMSでホームページ作成の紹介・ショッピングサイトの構築 [ Ec-Cube ]



CMS[shop]:Ec-Cubeのパスワード紛失

Ec-Cube:管理者用のId.パスワードを忘れた場合

管理者用のパスワードを忘れた場合?
管理者のパスワードがNGとなってログインできない時に実行。

ID.Passwordが分かっている場合でのログイン拒否
 システムエラーが発生した。



1・ data/config/config.phpのAUTH_MAGICの値が、元の環境と同じかどうかをチェック

  define ('HTTP_URL', 'http://localhost/~cms/EcCube/'); :設置アドレスになっているか?
  define ('HTTPS_URL', 'http://localhost/~cms/EcCube/');

もし設置アドレスになっていなければ修正すればOk

2.ID.Passwordを忘れた。
・ログインID.はphpMyAdmin データベース,dtb_memberで見れます。
・data/class/util/SC_Utils.php の修正。function sfIsMatchHashPasswordの戻り値をtrueとする。
・adminにIDと適当なパスワードでログインする。戻り値をtrueにしたからログイン可能?。
・管理画面:システム設定ーメンバー管理ー編集で新しいId.パスワードを保存する。
・SC_Utils.php のfunction sfIsMatchHashPasswordを完了したらfalseに戻す。
・adminに新しいパスワードでログインする。

2045行付近
falseをtrueに
   /**
   * パスワード文字列のハッシュ一致判定
   *
   * @param string $pass 確認したいパスワード文字列
   * @param string $hashpass 確認したいパスワードハッシュ文字列
   * @param string $salt salt
   * @return boolean 一致判定
   */
   function sfIsMatchHashPassword($pass, $hashpass, $salt) {
    $res = false;
     if ($hashpass != '') {
      if (AUTH_TYPE == 'PLAIN') {
         if($pass === $hashpass) {
           $res = true;
         }
       } else {
        if (empty($salt)) {
          // 旧バージョン(2.11未満)からの移行を考慮
          $hash = sha1($pass . ":" . AUTH_MAGIC);
       } else {
           $hash = SC_Utils_Ex::sfGetHashString($pass, $salt);
        }
        if($hash === $hashpass) {
          $res = true;
        }
      }
     }
    return $res;
   }