2014年11月13日木曜日

EC-CUBE2.13.3にてパスワードへ ****** を設定した際の不具合の対応方法について

SYSTEM_KDです。

タイトル長くなりましたが、先日の投稿で少しふれました、EC-CUBE2.13.3の不具合についての対処法についてです。

問題をおさらいしておきますと、EC-CUBE2.13.3において、パスワードの設定で記号を利用できるように改善されたのですが、その部分に不具合があり、会員登録時にパスワードを設定する際、マスクされた状態と同じ文字「******」をパスワードに設定すると、ログインができなくなるという問題です。

ソースを修正しなくても、パスワードリマインダーからパスワード再発行すればログインできるようになるのですが、簡単な修正で対応できますので、対応方法をのせてみます。

いきなりですが、修正するソースは

data/class/helper/SC_Helper_Customer.php になります。

修正方法ですが、上記ファイルの63行目を以下のように書き換えます。

//-- パスワードの更新がある場合は暗号化
if ($arrData['password'] == DEFAULT_PASSWORD or $arrData['password'] == '') {
//更新しない
unset($arrData['password']);
} else {
//-- パスワードの更新がある場合は暗号化
if (($arrData['password'] == DEFAULT_PASSWORD or $arrData['password'] == '') && is_numeric($customer_id)) {
//更新しない
unset($arrData['password']);
} else {

以上です。

変更内容としましては、新規の会員登録時は、パスワードの入力値が「******」の場合でも、パスワード値の登録処理をスキップせず処理するようにしただけです。

これで、パスワードに「******」を設定した場合も、ログインできるようになるかと思います。

まぁそもそも会員情報の変更では、上記の値にすることができないので、会員登録時限定の問題という大したこと無い話ではあります。

0 件のコメント:

コメントを投稿