バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > (パスワードを忘れた方へ)秘密の質問を正しくないものを入力したとしても新パスワードが発行される。

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
moment
投稿日時: 2016/3/13 12:35
対応状況: −−−
常連
登録日: 2014/6/30
居住地:
投稿: 45
(パスワードを忘れた方へ)秘密の質問を正しくないものを入力したとしても新パスワードが発行される。
大変お世話になっております。

パスワードを忘れた方への機能の流れで、秘密の質問を入力する際に空欄の状態で次へボタンを押すと、“秘密の質問が入力されていません”と表示されますが、例えば正しくないものを入力した時に(例:0、a等の一文字でさえ)新パスワードが常に発行される場合、何に問題があると考えられますでしょうか。

全く分かりません、どうかアドバイスをお願い致します。

関連するファイルは以下です。

以下の****の箇所のreminder_answerの箇所が機能していないのだと思われます。

LC_Page_Forgot.php



/**
* 秘密の質問確認
*
* @param array $arrForm フォーム入力値
* @param array $arrReminder リマインダー質問リスト
* @return string エラー文字列 問題が無ければNULL
*/
function lfCheckForgotSecret(&$arrForm, &$arrReminder) {
$errmsg = '';
$objQuery =& SC_Query_Ex::getSingletonInstance();
$cols = 'customer_id, reminder, reminder_answer, salt';
$table = 'dtb_customer';
$where = '(email = ? OR email_mobile = ?)'
. ' AND name01 = ? AND name02 = ?'
. ' AND status = 2 AND del_flg = 0';
$arrVal = array($arrForm['email'], $arrForm['email'],
$arrForm['name01'], $arrForm['name02']);
$result = $objQuery->select($cols, $table, $where, $arrVal);
if (isset($result[0]['reminder']) and isset($arrReminder[$result[0]['reminder']])
and $result[0]['reminder'] == $arrForm['reminder']) {

****if (empty($result[0]['salt'])) {
****// 旧バージョン(2.11未満)からの移行を考慮
****if ($result[0]['reminder_answer'] == $arrForm['reminder_answer']) {
****$is_authorized = true;
****}
****}
****elseif (SC_Utils_Ex::sfIsMatchHashPassword($arrForm['reminder_answer'],
****$result[0]['reminder_answer'], $result[0]['salt'])) {
****$is_authorized = true;
****}

if ($is_authorized) {
// 秘密の答えが一致
// 新しいパスワードを設定する
$new_password = GC_Utils_Ex::gfMakePassword(8);
if (FORGOT_MAIL == 1) {
// メールで変更通知をする
$objDb = new SC_Helper_DB_Ex();
$CONF = $objDb->sfGetBasisData();
$this->lfSendMail($CONF, $arrForm['email'], $arrForm['name01'], $new_password);
}
$sqlval = array();
$sqlval['password'] = $new_password;
SC_Helper_Customer_Ex::sfEditCustomerData($sqlval, $result[0]['customer_id']);
$arrForm['new_password'] = $new_password;
} else {
// 秘密の答えが一致しなかった
$errmsg = '秘密の質問が一致しませんでした。';
}
} else {
//不正なアクセス リマインダー値が前画面と異なる。
// 新リファクタリング基準ではここで遷移は不許可なのでエラー表示
//SC_Utils_Ex::sfDispSiteError(PAGE_ERROR, '', true);
$errmsg = '秘密の質問が一致しませんでした。';
}
return $errmsg;
}








[EC-CUBE]2.12.5
[OS]Linux
[PHP]5.3.13
[データベース]MySQL 5.0.67
[WEBサーバ]Apache

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,988名です
総投稿数は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.