バージョン選択

フォーラム

メニュー

オンライン状況

54 人のユーザが現在オンラインです。 (43 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 54
もっと...

サイト内検索

質問 > フロント機能 > ログインをメールアドレスから変更したい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
kaworu
投稿日時: 2008/9/23 14:48
対応状況: −−−
半人前
登録日: 2008/8/29
居住地:
投稿: 23
ログインをメールアドレスから変更したい
以前にも似たような質問があったようなのですが、判らなかったのでどうか教えて下さい。

ラピッドサイトでEC-CUBE(2.1.2)を利用しております。
PHPは5.2.6、DBはMySQL 5.0.51aです。

ログイン認証の部分で、現在メールアドレスになっているID部分を顧客名のname01+name02にしたいのです。

ファイルを見ていったところ、login.tplと、
data/class/pages/frontparts/中のLC_Page_FrontParts_LoginCheck.phpと
data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Login.phpあたりをいじればよいのかな?とは思うのですが、なにぶんsmartyやphpの知識が浅薄なもので、
どうか教えて下さい。
x41
投稿日時: 2008/9/24 7:53
対応状況: −−−
仙人
登録日: 2007/11/23
居住地:
投稿: 308
Re: ログインをメールアドレスから変更したい
まずは、login_emailをname01に書き換えてロジックを追ってみるとできるかも。。
kaworu
投稿日時: 2008/9/24 9:33
対応状況: −−−
半人前
登録日: 2008/8/29
居住地:
投稿: 23
Re: ログインをメールアドレスから変更したい
返信有り難うございます。
"login_email"部分を"nama01"にそれぞれ書き換えてみたところ、
「メールアドレスもしくはパスワードが正しくありません。
本登録がお済みでない場合は、仮登録メールに記載されている
URLより本登録を行ってください。」となってしまいました。


LC_Page_FrontParts_LoginCheck.phpの58行目付近の

// 不正なURLがPOSTされた場合はエラー表示
if (!$this->isValidToken()) {
GC_Utils_Ex::gfPrintLog('invalid access :login_check.php $POST["url"]=' . $_POST['url']);
SC_Utils_Ex::sfDispSiteError(PAGE_ERROR);

このあたりも何らかの変更が必要でしょうか?

miho
投稿日時: 2008/9/25 12:45
対応状況: −−−
半人前
登録日: 2008/7/31
居住地:
投稿: 13
Re: ログインをメールアドレスから変更したい
カスタマイズしたところを元通りにデフォルトの状態に戻してから、
LC_Page_FrontParts_LoginCheck.phpの、

$where = "(email = ? OR email_mobile = ?) AND status = 1 AND del_flg = 0";

のところを

$where = "(name01 = ? OR name02 = ?) AND status = 1 AND del_flg = 0";

にすると、姓or名でログインできるようになるとおもいます。
名前すべてでログインする方法は・・・、頑張ってください
kaworu
投稿日時: 2008/9/25 17:14
対応状況: −−−
半人前
登録日: 2008/8/29
居住地:
投稿: 23
Re: ログインをメールアドレスから変更したい
ありがとうございます!
早速確認してみます。
名前全ての方法・・・、なんとか頑張ってみます。
kaworu
投稿日時: 2008/9/25 17:52
対応状況: −−−
半人前
登録日: 2008/8/29
居住地:
投稿: 23
Re: ログインをメールアドレスから変更したい
只今カスタマイズした部分をいったん全部でフォルトに戻し、
LC_Page_FrontParts_LoginCheck.phpの、

$where = "(email = ? OR email_mobile = ?) AND status = 1 AND del_flg = 0";

のところを

$where = "(name01 = ? OR name02 = ?) AND status = 1 AND del_flg = 0";

に変更したのですが、姓も名もログイン出来ませんでした、
試しにメールアドレスでログインしてみるとすんなり入れてしまいました。

このファイル以外は変更は必要なかったのでしょうか?
kigi
投稿日時: 2008/10/1 18:26
対応状況: −−−
半人前
登録日: 2008/9/19
居住地:
投稿: 18
Re: ログインをメールアドレスから変更したい
LC_Page_FrontParts_LoginCheckでログイン判定を行っていますが
その中に「$objCustomer->getCustomerDataFromEmailPass」このような記述が見受けられました。
SC_Customer.php内の「getCustomerDataFromEmailPass」メソッドでパスワードの判定まで行われているようです。
ですので変更手順から言いますと

?LC_Page_FrontParts_LoginCheck内の「lfInitParam」にPOSTされるデータを追加
?保存されるクッキー情報の変更
?SC_Customer.php内の「getCustomerDataFromEmailPass」SQL文を変更
?「getCustomerDataFromEmailPass」で失敗した場合の処理96行目あたりです。

以上を変更すると変更できると思います。
kaworu
投稿日時: 2008/10/1 23:36
対応状況: −−−
半人前
登録日: 2008/8/29
居住地:
投稿: 23
Re: ログインをメールアドレスから変更したい
ご返信有り難うございます。

せっかくお答え頂いたのに甘えるようで本当に申し訳ないのですが、


1.LC_Page_FrontParts_LoginCheck内の「lfInitParam」にPOSTされるデータを追加

68行目からの
$this->lfInitParam();
// POST値の取得
$this->objFormParam->setParam($_POST);

if (!isset($_POST['mode'])) $_POST['mode'] = "";

switch($_POST['mode']) {
case 'login':
$this->objFormParam->toLower('login_email');
$arrErr = $this->objFormParam->checkError();

このあたりの分かと思うのですが、どのような追加をすればよろしいでしょうか?

2.保存されるクッキー情報の変更

83行目あたりの
$arrForm = $this->objFormParam->getHashArray();
// クッキー保存判定
if ($arrForm['login_memory'] == "1" && $arrForm['login_email'] != "") {
$objCookie->setCookie('login_email', $_POST['login_email']);
} else {
$objCookie->setCookie('login_email', '');
}

login_emaiを変更でしょうか?

3.SC_Customer.php内の「getCustomerDataFromEmailPass」SQL文を変更

emailをname01に書き換えで出来ますでしょうか?。

すみません、どうかご教授ください。
kigi
投稿日時: 2008/10/2 10:18
対応状況: −−−
半人前
登録日: 2008/9/19
居住地:
投稿: 18
Re: ログインをメールアドレスから変更したい
lfInitParamへの追加は
$this->objFormParam->addParam("名前", "name01", MTEXT_LEN, "a", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,""));

を追加し、
$this->objFormParam->addParam("メールアドレス", "login_email", MTEXT_LEN, "a", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "EMAIL_CHECK", "NO_SPTAB" ,"EMAIL_CHAR_CHECK"));

を削除する。
$objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['login_email'], true)
を
$objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['kana01'], true)
へ変更

SC_Customer.phpをこのように変更してはどうでしょうか
テストを行っていないので何とも言えませんが

function getCustomerDataFromEmailPass( $pass, $kana01, $mobile = false ) {
        $arrValues = array($kana01);
        
		// 本登録された会員のみ
        $sql = "SELECT * FROM dtb_customer WHERE (kana01 = ? AND del_flg = 0 AND status = 2";
        $result = $this->conn->getAll($sql, $arrValues);
        if (empty($result)) {
            return false;
        } else {
            $data = $result[0];
        }

        // パスワードが合っていれば顧客情報をcustomer_dataにセットしてtrueを返す
        if ( sha1($pass . ":" . AUTH_MAGIC) == $data['password'] ){
            $this->customer_data = $data;
            $this->startSession();
            return true;
        }
        return false;
    }
kaworu
投稿日時: 2008/10/2 21:17
対応状況: −−−
半人前
登録日: 2008/8/29
居住地:
投稿: 23
Re: ログインをメールアドレスから変更したい
kigi様

詳しい説明有り難うございます。
早速試してみます、またご報告させていただきます
(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,972名です
総投稿数は110,019件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.